2,663 research outputs found
Automating SLA-Driven API Development with SLA4OAI
The OpenAPI Specification (OAS) is the de facto standard
to describe RESTful APIs from a functional perspective. OAS has been
a success due to its simple model and the wide ecosystem of tools supporting the SLA-Driven API development lifecycle. Unfortunately, the
current OAS scope ignores crucial information for an API such as its
Service Level Agreement (SLA). Therefore, in terms of description and
management of non-functional information, the disadvantages of not having a standard include the vendor lock-in and prevent the ecosystem to
grow and handle extra functional aspects.
In this paper, we present SLA4OAI, pioneering in extending OAS not
only allowing the specification of SLAs, but also supporting some stages
of the SLA-Driven API lifecycle with an open-source ecosystem. Finally,
we validate our proposal having modeled 5488 limitations in 148 plans
of 35 real-world APIs and show an initial interest from the industry with
600 and 1900 downloads and installs of the SLA Instrumentation Library
and the SLA Engine.Ministerio de EconomĂa y Competitividad TIN2015-70560-RMinisterio de Ciencia, InnovaciĂłn y Universidades RTI2018-101204-B-C21Ministerio de EducaciĂłn, Cultura y Deporte FPU15/0298
Programming patterns and development guidelines for Semantic Sensor Grids (SemSorGrid4Env)
The web of Linked Data holds great potential for the creation of semantic applications that can combine self-describing structured data from many sources including sensor networks. Such applications build upon the success of an earlier generation of 'rapidly developed' applications that utilised RESTful APIs. This deliverable details experience, best practice, and design patterns for developing high-level web-based APIs in support of semantic web applications and mashups for sensor grids. Its main contributions are a proposal for combining Linked Data with RESTful application development summarised through a set of design principles; and the application of these design principles to Semantic Sensor Grids through the development of a High-Level API for Observations. These are supported by implementations of the High-Level API for Observations in software, and example semantic mashups that utilise the API
Towards property-based testing of RESTful web services
Developing APIs as Web Services over HTTP implies adding an extra layer to software, compared to the ones that we would need to develop an API distributed as, for example, a library. This additional layer must be included in testing too, but this implies that the software under test has an additional complexity due both to the need to use an intermediate protocol in tests and to the need to test compliance with the constraints imposed by that protocol: in this case the constraints defined by the REST architectural style. On the other hand, these requirements are common to all the Web Services, and because of that, we should be able to abstract this aspect of the testing model so that we can reuse it in testing any Web Service. In this paper, as a first step towards automating the testing of Web Services over HTTP, we describe a practical mechanism and model for testing RESTful Web Services without side effects and give an example of how we successfully adapted that mechanism to test two different existing Web Services: Storage Room by Thriventures and Google Tasks by Google. For this task we have used Erlang together with state machine models in the property-based testing tool Quviq QuickCheck, implemented using the statem module. 1
AI-driven web API testing
Testing of web APIs is nowadays more critical than ever before,
as they are the current standard for software integration. A bug
in an organizationâs web API could have a huge impact both in ternally (services relying on that API) and externally (third-party
applications and end users). Most existing tools and testing ap proaches require writing tests or instrumenting the system under
test (SUT). The main aim of this dissertation is to take web API
testing to an unprecedented level of automation and thoroughness.
To this end, we plan to apply artificial intelligence (AI) techniques
for the autonomous detection of software failures. Specifically, the
idea is to develop intelligent programs (we call them âbotsâ) ca pable of generating hundreds, thousands or even millions of test
inputs and to evaluate whether the test outputs are correct based
on: 1) patterns learned from previous executions of the SUT; and 2)
knowledge gained from analyzing thousands of similar programs.
Evaluation results of our initial prototype are promising, with bugs
being automatically detected in some real-world APIs.Ministerio de EconomĂa y Competitividad BELI (TIN2015-70560-R)Ministerio de Ciencia, InnovaciĂłn y Universidades RTI2018-101204-B-C21 (HORATIO)Ministerio de EducaciĂłn, Cultura y Deporte FPU17/0407
HTTP Mailbox - Asynchronous RESTful Communication
We describe HTTP Mailbox, a mechanism to enable RESTful HTTP communication in
an asynchronous mode with a full range of HTTP methods otherwise unavailable to
standard clients and servers. HTTP Mailbox allows for broadcast and multicast
semantics via HTTP. We evaluate a reference implementation using ApacheBench (a
server stress testing tool) demonstrating high throughput (on 1,000 concurrent
requests) and a systemic error rate of 0.01%. Finally, we demonstrate our HTTP
Mailbox implementation in a human assisted web preservation application called
"Preserve Me".Comment: 13 pages, 6 figures, 8 code blocks, 3 equations, and 3 table
- âŠ