mirror of
https://github.com/foss42/apidash.git
synced 2025-12-04 20:13:56 +08:00
PullRequest Table Modified to include ALL PRs
This commit is contained in:
@@ -1,33 +1,44 @@
|
|||||||
# GSoC'25 - AI-Powered Dynamic UI and Tool Generator with SSE & API Request Support
|
# GSoC'25 - AI-Based API Response to Dynamic UI and Tool Generator
|
||||||
|
|
||||||
> Final report summarizing my contributions to the project as part of GSoC'25
|
> Final report summarizing my contributions to the project as part of GSoC'25
|
||||||
|
|
||||||
## Project Details
|
## Project Details
|
||||||
1. **Contributor** : Manas M Hejmadi
|
1. **Contributor** : Manas M Hejmadi
|
||||||
2. **Mentors** : Ashita P, Ankit M
|
2. **Mentors** : Ashita P, Ankit M, Ragul Raj M
|
||||||
3. **Organization**: API Dash
|
3. **Organization**: API Dash
|
||||||
4. **Project**: AI-Based API Response to Dynamic UI and Tool Generator (with SSE & AI Requests Support )
|
4. **Project**: AI-Based API Response to Dynamic UI and Tool Generator
|
||||||
|
|
||||||
#### Quick Links
|
#### Quick Links
|
||||||
- [GSoC Project Page](https://summerofcode.withgoogle.com/myprojects/details/hhUUM8wl)
|
- [GSoC Project Page](https://summerofcode.withgoogle.com/myprojects/details/hhUUM8wl)
|
||||||
- [Code Repository](https://github.com/foss42/apidash)
|
- [Code Repository](https://github.com/foss42/apidash)
|
||||||
- [Discussion Logs](https://github.com/foss42/apidash/discussions/852)
|
- [Discussion Logs](https://github.com/foss42/apidash/discussions/852)
|
||||||
|
|
||||||
|
## Objectives Summary (DESCRIPTION)
|
||||||
|
The primary goal is to extend API Dash with capabilities that go beyond traditional API client functionality. This includes adding streaming and Server-Sent Events (SSE) support, introducing native AI-powered request handling, and refactoring the core networking components into a modular package for better maintainability and reusability.
|
||||||
|
In addition, we aim to leverage AI to build higher-level features such as an API-to-Flutter UI generator and an API tool generator to simplify integration for agentic AI applications. Together, these objectives position API Dash as a modern, intelligent, and extensible platform for both developers and AI-driven workflows.
|
||||||
|
|
||||||
## Proposed Objectives
|
## Proposed Objectives
|
||||||
|
|
||||||
|
to accomplish this feaure we had to develop core features which are as follows
|
||||||
|
MAJOR FEATURES:
|
||||||
|
|
||||||
|
briefly describe what project is about
|
||||||
|
|
||||||
1. Refactor Apidash’s core networking components into a standalone reusable and testable package.
|
1. Refactor Apidash’s core networking components into a standalone reusable and testable package.
|
||||||
2. Add Streaming & Server-Sent Events (SSE) support to the Apidash client.
|
2. Add Streaming & Server-Sent Events (SSE) support to the Apidash client.
|
||||||
3. Integrate native AI request handling into the Apidash client.
|
3. Integrate native AI request handling into the Apidash client.
|
||||||
4. Develop an AI-powered API-to-Flutter UI generator for seamless UI creation.
|
4. Develop an AI-powered API-to-Flutter UI generator for seamless UI creation.
|
||||||
5. Build an API tool generator to help agentic AI applications connect with API endpoints.
|
5. Build an API tool generator to help agentic AI applications connect with API endpoints.
|
||||||
|
|
||||||
## Objectives Summary
|
|
||||||
The primary goal is to extend API Dash with capabilities that go beyond traditional API client functionality. This includes adding streaming and Server-Sent Events (SSE) support, introducing native AI-powered request handling, and refactoring the core networking components into a modular package for better maintainability and reusability.
|
|
||||||
In addition, we aim to leverage AI to build higher-level features such as an API-to-Flutter UI generator and an API tool generator to simplify integration for agentic AI applications. Together, these objectives position API Dash as a modern, intelligent, and extensible platform for both developers and AI-driven workflows.
|
|
||||||
|
|
||||||
## Objectives Completed
|
## Feature Description
|
||||||
|
|
||||||
### Refactored API Dash's core networking architecture into a standalone package named `better_networking`
|
### Refactored API Dash's core networking architecture into a standalone package named `better_networking`
|
||||||
|
|
||||||
|
`Package Link`: https://pub.dev/packages/better_networking
|
||||||
|
|
||||||
|
`Associated Pull Request`: [#857](https://github.com/foss42/apidash/pull/857)
|
||||||
|
|
||||||
We envisioned `better_networking` to be the go-to package for everything related to networking for a flutter application. It contains very easy to use handlers for making all types of HTTP & GraphQL Requests along with advanced features such as Request cancellation and so on. Initially this was tightly coupled with the apidash codebase under `apidash_core`. I had to decouple it and make platform wide changes to accomodate the new package approach. This also allowed us to write better tests for it and reach 95+% code coverage.
|
We envisioned `better_networking` to be the go-to package for everything related to networking for a flutter application. It contains very easy to use handlers for making all types of HTTP & GraphQL Requests along with advanced features such as Request cancellation and so on. Initially this was tightly coupled with the apidash codebase under `apidash_core`. I had to decouple it and make platform wide changes to accomodate the new package approach. This also allowed us to write better tests for it and reach 95+% code coverage.
|
||||||
|
|
||||||
This is an example of how better_networking simplifies request handling
|
This is an example of how better_networking simplifies request handling
|
||||||
@@ -59,6 +70,8 @@ cancelHttpRequest('unique-request-id');
|
|||||||
---
|
---
|
||||||
|
|
||||||
### Added SSE and Streaming Support to the Client
|
### Added SSE and Streaming Support to the Client
|
||||||
|
`Associated Pull Request`: [#861](https://github.com/foss42/apidash/pull/861)
|
||||||
|
|
||||||

|

|
||||||
SSE Support was a long pending [issue](https://github.com/foss42/apidash/issues/116) (since 2024) and hence the mentors asked me to see if i was able to implement SSE support into `better_networking` and simultaneously into `apidash` itself. The implementations suggested by other contributors in the past involved creation of SSE as a completely new request type.
|
SSE Support was a long pending [issue](https://github.com/foss42/apidash/issues/116) (since 2024) and hence the mentors asked me to see if i was able to implement SSE support into `better_networking` and simultaneously into `apidash` itself. The implementations suggested by other contributors in the past involved creation of SSE as a completely new request type.
|
||||||
However, I did not agree with this approach as SSE is not a fundamentally separate request type like GraphQL. Hence, I wrote up a quick demo with SSE implemented within the existing apidash foundation code. The mentors were impressed with this approach as it was far more maintainable and sensible than creating new models for it.
|
However, I did not agree with this approach as SSE is not a fundamentally separate request type like GraphQL. Hence, I wrote up a quick demo with SSE implemented within the existing apidash foundation code. The mentors were impressed with this approach as it was far more maintainable and sensible than creating new models for it.
|
||||||
@@ -88,6 +101,9 @@ This way, everything stays unified and we reduce the amount of duplication
|
|||||||
---
|
---
|
||||||
|
|
||||||
### Added Agents and AI Requests Support
|
### Added Agents and AI Requests Support
|
||||||
|
|
||||||
|
`Associated Pull Request`: [#870](https://github.com/foss42/apidash/pull/870)
|
||||||
|
|
||||||
With the rapid rise of Generative AI, it became clear that API Dash required a dedicated AI request interface with support for agentic systems. Based on this need, my mentors tasked me with developing a comprehensive AI Requests feature, along with an integrated agent building framework for future agentic integrations within the apidash application
|
With the rapid rise of Generative AI, it became clear that API Dash required a dedicated AI request interface with support for agentic systems. Based on this need, my mentors tasked me with developing a comprehensive AI Requests feature, along with an integrated agent building framework for future agentic integrations within the apidash application
|
||||||
|
|
||||||

|

|
||||||
@@ -160,19 +176,30 @@ This makes use of the Server Driven UI Concept powered by [Stac](https://stac.de
|
|||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## Pull Request Report
|
## Complete Pull Request Report
|
||||||
|
|
||||||
| Feature | Pull Requests |
|
|
||||||
|-----------------------------------------------|-------------------------------------------------------------------------------|
|
|
||||||
| Refactoring into Better Networking Package | [better networking refactoring and package creation](https://github.com/foss42/apidash/pull/857) |
|
| Feature | PR | Issue | Status | Comments |
|
||||||
| SSE & Streaming Support | [SSE and streaming support for better networking](https://github.com/foss42/apidash/pull/861) |
|
|---|---|---|---|---|
|
||||||
| Combined: genai package + Native AI Requests Feature | [genai package and AI Requests feature](https://github.com/foss42/apidash/pull/870) |
|
|Proof of Concept & Proposal Doc|[#755](https://github.com/foss42/apidash/pull/755)||Merged||
|
||||||
| AI UI Designer & Tool Generator | [AI UI Designer + Tool Generator implementation](https://github.com/foss42/apidash/pull/874) |
|
|FIX: `<optimized out>` exception|[#780](https://github.com/foss42/apidash/pull/780)|[#782](https://github.com/foss42/apidash/issues/782)|Merged||
|
||||||
| Documentation | [doc: GSoC Final Report Creation](https://github.com/foss42/apidash/pull/878) |
|
|AI Requests Feature Initial Implementation|[#850](https://github.com/foss42/apidash/pull/850)||Closed|multiple modifications suggested|
|
||||||
|
|AI Requests Feature Fine tuning|[#856](https://github.com/foss42/apidash/pull/856)||Closed|SSE and Separate Networking layer was deemed necessary before this PR|
|
||||||
|
|`better_networking` Package Creation|[#857](https://github.com/foss42/apidash/pull/857)||Merged|
|
||||||
|
`genai` package foundations|[#859](https://github.com/foss42/apidash/pull/859)||Closed|Mentor requested for a new PR after making some changes|
|
||||||
|
|SSE Feature Foundations|[#860](https://github.com/foss42/apidash/pull/860)||Closed|Mentor requested changes and rebase to main branch|
|
||||||
|
|SSE & Streaming Support|[#861](https://github.com/foss42/apidash/pull/861)|[#116](https://github.com/foss42/apidash/issues/116)|Merged||
|
||||||
|
|`genai` & AI Requests Feature|[#870](https://github.com/foss42/apidash/pull/870)|[#871](https://github.com/foss42/apidash/issues/871)|Open|Under Review
|
||||||
|
|AI UI Designer & Tool Generator|[#874](https://github.com/foss42/apidash/pull/874)|[#617](https://github.com/foss42/apidash/issues/617)|Open|Under Review
|
||||||
|
|Final Report Documentation|[#878](https://github.com/foss42/apidash/pull/878)||Open|Under Review
|
||||||
|
---
|
||||||
|
|
||||||
|
|
||||||
## Challenges Faced
|
## Challenges Faced
|
||||||
|
|
||||||
|
talk about new learnign and overcoming issues
|
||||||
|
|
||||||
- SDUI Dilemma (cannot use hosted rendering server, cannot use Reflection, cannot bundle flutter sdk), hence had to rely on Server Driven UI using Stac
|
- SDUI Dilemma (cannot use hosted rendering server, cannot use Reflection, cannot bundle flutter sdk), hence had to rely on Server Driven UI using Stac
|
||||||
- Stac has no support for returning errors
|
- Stac has no support for returning errors
|
||||||
- Larger UIs tend to generate too long Stac code which gets clipped and leads to faulty output
|
- Larger UIs tend to generate too long Stac code which gets clipped and leads to faulty output
|
||||||
|
|||||||
Reference in New Issue
Block a user