Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

API Explorer #619

Open
ashitaprasad opened this issue Feb 23, 2025 · 8 comments
Open

API Explorer #619

ashitaprasad opened this issue Feb 23, 2025 · 8 comments
Labels
good first issue Good for newcomers

Comments

@ashitaprasad
Copy link
Member

Tell us about the task you want to perform and are unable to do so because the feature is not available

This project is designed to enhance the API Dash user experience by integrating a curated library of popular and publicly available APIs. This feature allows users to discover, browse, search, and directly import API endpoints into their workspace for seamless testing and exploration. Developers can access pre-configured API request templates, complete with authentication details, sample payloads, and expected responses. This eliminates the need to manually set up API requests, reducing onboarding time and improving efficiency. APIs spanning various domains—such as AI, finance, weather, and social media—are organized into categories, making it easy for users to find relevant services. You are required to develop the entire process backend in the form of an automation pipeline which parses OpenAPI/HTML files, auto-tag it to relevant category, enrich the data, create templates. You can also add features such as user ratings, reviews, and community contributions (via GitHub) to ensure accurate and up-to-date resources.

@ashitaprasad ashitaprasad added the enhancement New feature or request label Feb 23, 2025
@definitelynotchirag
Copy link

@ashitaprasad Hello! I would love to start working on this project. Just a question, have you fixed which libraries to use to get the public apis? Or should I do some research about it and get back to you?

@arpit-chakraborty
Copy link

@ashitaprasad Hii i read the idea and got really facinated by it, i would love to be a part and start working on it

@arpit-chakraborty
Copy link

  1. AI-Powered API Discovery and Auto-Tagging

  2. API Health Monitoring and Auto-Updates

  3. Personalized API Recommendations

This are some ideas that came in mind

@definitelynotchirag
Copy link

@arpit-chakraborty hey great ideas! But don't you think we are going a bit out of context by implementing these? A simple API discovery dashboard would be enough. But we can implement the AI powered API discovery as you said. That will be a good one!

@TishaJhabak1014
Copy link

Hi @ashitaprasad

Excited to contribute to this :) Please find my brief of my approach and some clarifying questions:

Proposed Approach

1. Automated Pipeline Development

  • Parsing OpenAPI/HTML Files: Develop a parser to extract API metadata (endpoints, parameters, authentication details, etc.) from OpenAPI specifications or HTML documentation.
  • Auto-Tagging: Implement a machine learning or rule-based system to categorize APIs into domains (e.g., AI, finance, weather) based on extracted metadata.
  • Data Enrichment: Enhance API metadata by adding sample payloads, expected responses, and authentication details. Use external APIs or community contributions to fill gaps.
  • Template Creation: Automatically generate pre-configured API request templates for each endpoint, including authentication headers, sample payloads, and expected responses.

2. User Experience Enhancements

  • Search and Discovery: Implement a robust search functionality with filters for categories, popularity, and user ratings.
  • Community Contributions: Allow users to submit APIs, rate, and review them. Integrate GitHub for community-driven updates and version control.
  • API Testing: Provide an in-built testing environment where users can directly test imported APIs within the workspace.

Clarifying Questions

  1. Scope of API Sources:

    • Are there specific sources (e.g., GitHub, RapidAPI, or public API directories) from which APIs should be curated?
    • Should the system support only OpenAPI specifications, or should it also handle other formats like GraphQL or SOAP?
  2. Auto-Tagging Mechanism:

    • Should the auto-tagging system be rule-based (e.g., keyword matching) or ML-based (e.g., NLP models)? If ML-based, is there a labeled dataset available for training?
    • How many categories are expected, and will they be predefined or dynamically generated?
  3. Integration with API Dash:

    • Are there specific frontend components or APIs that the backend pipeline must integrate with?
    • Should the pipeline support real-time updates, or is periodic syncing sufficient?

Looking forward to your comments :) Thanks a lot!

@ashitaprasad
Copy link
Member Author

ashitaprasad commented Mar 1, 2025

@ashitaprasad Hello! I would love to start working on this project. Just a question, have you fixed which libraries to use to get the public apis? Or should I do some research about it and get back to you?

@definitelynotchirag The first step should be to start with the feature design and front-end with 5-10 public APIs manually added. Some some questions that your initial idea should answer:

  • How will the API data be structured?
  • Will there be any metadata?
  • How will the UI look?
  • How to specify api templates?
    & more.

API data gathering is relatively simpler.

You can also go through the updated application guide here to learn how you can share a detailed idea proposal.

@ashitaprasad
Copy link
Member Author

  1. AI-Powered API Discovery and Auto-Tagging
  2. API Health Monitoring and Auto-Updates
  3. Personalized API Recommendations

This are some ideas that came in mind

@arpit-chakraborty you can go through the updated application guide here to learn how you can share your ideas in detail and get feedback.

@ashitaprasad
Copy link
Member Author

@TishaJhabak1014

Clarifying Questions

  1. Scope of API Sources:
  • Are there specific sources (e.g., GitHub, RapidAPI, or public API directories) from which APIs should be curated?

You can start by adding some popular AI APIs which you can find here https://github.com/foss42/awesome-generative-ai-apis

  • Should the system support only OpenAPI specifications, or should it also handle other formats like GraphQL or SOAP?

OpenAPI, HTML parsers, markdown parsers. If the API is popular whatever format in which it is specified should be added in the pipeline.

  1. Auto-Tagging Mechanism:

    • Should the auto-tagging system be rule-based (e.g., keyword matching) or ML-based (e.g., NLP models)? If ML-based, is there a labeled dataset available for training?

rule based will be a good start

  • How many categories are expected, and will they be predefined or dynamically generated?

Pre-defined. It will be a subset of the categories specified here - https://github.com/fluttergems/awesome-open-source-flutter-apps

  1. Integration with API Dash:
  • Are there specific frontend components or APIs that the backend pipeline must integrate with?

No. The backend pipeline will just generate the final consumable data which API Dash will serve on the frontend.

  • Should the pipeline support real-time updates, or is periodic syncing sufficient?

Pipeline will run periodically (once a week as API specs don't change frequently) or whenever a new API is added and generated the final data which will be served by API Dash

@ashitaprasad ashitaprasad added good first issue Good for newcomers and removed enhancement New feature or request labels Mar 1, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
good first issue Good for newcomers
Projects
None yet
Development

No branches or pull requests

4 participants