The API Dataset Generator (ADG) is a dedicated component within the Agape approach, tasked with the generation of datasets that encompass all 12 general information data required for similarity analyses. This dataset is crafted using a Cartesian Product, which juxtaposes all response attributes present in each endpoint of an API with every input attribute in all other APIs. The primary intention is to create a comprehensive dataset facilitating in-depth similarity analyses.
The essence of ADG's functionality is rooted in the Algorithm section. This algorithm harnesses the information extracted from the APIs by the API Syntactic Extractor (ASE). It then returns a dataset formulated through the Cartesian Product of the 12 general information of API integration points, see Figure below.
The ADG's core is based on the algorithm described below.
Constructed using Python, the ADG service is a lightweight, dynamic, and web-compatible solution. The choice of language complements the ADG algorithm's versatility and caters to the overarching requirements of the System of Systems context, as described within the Agape approach.
Before running the application, make sure to install the required dependencies. You can install them using pip
:
pip install -r requirements.txt
Before you start the ADG, be sure to start it.
python server.py
Access the ADG from the GraphQL endpoint:
http://localhost:4002/graphql
Note:
- The default PORT is 4002, but can be change for your convenience.
- This project heavily relies on GraphQL, a powerful query language for APIs, and a server-side runtime for executing those queries with your existing data. If you're unfamiliar with GraphQL or wish to dive deeper, you can learn more about GraphQL here.
- Agape Approach: As the Agape approach is being validated through conferences and journals, updates will be periodically provided here. Once the validation process concludes and findings are published, a direct link to the paper will be shared in this section for easy accessibility.
The ADG, currently in the evolutionary phase, functions as a proof of concept. It is actively undergoing improvements and changes to refine its capabilities and more effectively meet new requirements.
Marcos Borges
PhD Student at Federal University of Ceará, Brazil
Email: [email protected]
Community-driven improvements are always welcome. If you're looking to contribute, feel free to raise pull requests. For more significant changes or additions, it's recommended to open an issue first for discussions.
This project is licensed under the GPL-3.0 License - see the LICENSE file for details.