nw  

Visualizing connections of API swagger documentation

Summary

We developed a data annotation platform to generate accurate training data for an artificial intelligence in the field of automatic REST API testing.

Keywords

Python, Flask, User Experience, AngularJS, DynamoDB

Goal

The goal of this project is to develop a platform to annotate data that has been generated by the artificial intelligence of the company Testifi Ltd. in order to improve the accuracy of their predictions.

Initial Position

In recent years, there has been an explosion in cloud services for hosting web-based applications and distributed services. Application programming interfaces (APIs) allow one computer program to make its data and functionality available for other programs to use. Cloud service developers can document their APIs using an interface-description language such as Swagger. A Swagger specification describes how to access a cloud service through its REST API. This includes the type of requests that can be sent to the server, the format of the request and the expected response. Because lots of users widely use these APIs, it is crucial to test them and detect bugs and security-related issues to check whether those services are reliable.
Test automation tools like RESTLER try to detect bugs in the APIs by employing fuzzing based
techniques. Basically, fuzzing means sending invalid, unexpected, or random data requests to the APIs and analysing the responses. To improve this fuzzing technique it is useful to know which endpoint has a link to another enpoint. For example the output parameter "username" of an endpoint like create/user that can be used by another endpoint like get/user/{username}. To identify these kinds of links Testifi Ltd. uses its product named PULSE, an artificial intelligence to generate links of endpoints from a Swagger documentation.

Results

The result is an easy-to-use web platform that employees can annotate generated links for specified API schemas. The admin users can then monitor the performance of the annotators and analyze the user statistics to ensure a good data quality.

Project data

One semester, Effort 6 ETCS (180 h), Team of 2

Client

Nejdet Dogru, Head of AI, Testifi Ltd.,

https://testifi.io/ 

Projektteam

Jan Säuberli
Festim Jetishi

Kontakt

Prof. Martin Kropp, martin.kropp@fhnw.ch

Fabian Affolter, fabian.affolter@fhnw.ch

<< zurück