|
| 1 | +### Initial Idea Submission |
| 2 | + |
| 3 | +Full Name: Sabith Fulail |
| 4 | +University name: Informatics Institute of Technology (IIT | Colombo, Sri Lanka) |
| 5 | +Program you are enrolled in (Degree & Major/Minor): BSc (Hons) Computer Science (Data Science) |
| 6 | +Year: 3rd Year |
| 7 | +Expected graduation date: May, 2026 |
| 8 | + |
| 9 | +Project Title: Adding Support for API Authentication Methods |
| 10 | + |
| 11 | +Relevant issues: |
| 12 | + [#557](https://github.com/foss42/apidash/issues/557) – Pre-request and post-request scripts |
| 13 | + [#121](https://github.com/foss42/apidash/issues/121) – Importing from/Exporting to OpenAPI/Swagger specification |
| 14 | + [#337](https://github.com/foss42/apidash/issues/337) – Support for application/x-www-form-urlencoded |
| 15 | + [#352](https://github.com/foss42/apidash/issues/352) – Support file as request body |
| 16 | + [#22](https://github.com/foss42/apidash/issues/22) – JSON body syntax highlighting, beautification, validation |
| 17 | + [#581](https://github.com/foss42/apidash/issues/581) – Beautify JSON request body (Closed) |
| 18 | + [#582](https://github.com/foss42/apidash/issues/582) – Syntax highlighting for JSON request body (Closed) |
| 19 | + [#583](https://github.com/foss42/apidash/issues/583) – Validation for JSON request body |
| 20 | + [#590](https://github.com/foss42/apidash/issues/590) – Environment variable support in request body |
| 21 | + [#591](https://github.com/foss42/apidash/issues/591) – Environment variable support for text request body |
| 22 | + [#592](https://github.com/foss42/apidash/issues/592) – Environment variable support for JSON request body |
| 23 | + [#593](https://github.com/foss42/apidash/issues/593) – Environment variable support for form request body |
| 24 | + [#599](https://github.com/foss42/apidash/issues/599) – Support for comments in JSON request body |
| 25 | + [#600](https://github.com/foss42/apidash/issues/600) – Reading environment variables from OS environment |
| 26 | + [#601](https://github.com/foss42/apidash/issues/601) – Adding color support for environments |
| 27 | + [#373](https://github.com/foss42/apidash/issues/373) – In-app update notifications |
| 28 | + |
| 29 | +Idea description: |
| 30 | + This project will streamline API testing in API Dash by introducing pre/post-request scripting, robust OpenAPI/Swagger interoperability, |
| 31 | + and enhanced JSON/GraphQL editing. These changes will reduce manual effort in API debugging and improve workflow efficiency. |
| 32 | + |
| 33 | + |
| 34 | +Implementation Plan |
| 35 | +Phase 1: Research & Planning (Week 1-2) |
| 36 | + Study existing API Dash architecture and feature requests. |
| 37 | + Prioritize features based on complexity and impact. |
| 38 | + Research best practices for JSON syntax validation, GraphQL handling, and API import/export. |
| 39 | + |
| 40 | +Phase 2: Core Feature Development (Week 3-10) |
| 41 | + 1. Pre-Request & Post-Request Scripts (#557) |
| 42 | + Enable users to modify requests and responses dynamically before sending. |
| 43 | + This includes automating tasks such as adding authentication tokens, handling environment variables, |
| 44 | + chaining API requests, and transforming request/response data. |
| 45 | + |
| 46 | + 2. OpenAPI/Swagger Import & Export (#121) |
| 47 | + Allow importing API requests from OpenAPI/Swagger JSON/YAML files. |
| 48 | + Implement API export functionality to generate valid OpenAPI specifications. |
| 49 | + |
| 50 | + 3. JSON Body Enhancements (#22) |
| 51 | + Add syntax highlighting, beautification, and validation for JSON request bodies. |
| 52 | + Provide auto-formatting and error detection for malformed JSON. |
| 53 | + |
| 54 | + 4. GraphQL Editor Improvements |
| 55 | + Add expand/collapse feature for GraphQL queries. |
| 56 | + Implement support for GraphQL fragments, mutations, and subscriptions. |
| 57 | + Improve GraphQL schema inspection. |
| 58 | + |
| 59 | + 5. Support for More Content Types (#337) |
| 60 | + Add support for application/x-www-form-urlencoded and file upload as request body. |
| 61 | + |
| 62 | +Phase 3: Enhancements & Testing (Week 11-14) |
| 63 | + 6. Environment Variable & UI Improvements (#600, #601) |
| 64 | + Allow reading OS environment variables directly. |
| 65 | + Introduce color-coded environments (e.g., RED for Prod, GREEN for Dev). |
| 66 | + |
| 67 | + 7. In-App Update Notifications (#373) |
| 68 | + Notify users when a new version of API Dash is available. |
| 69 | + Provide an update button to quickly navigate to the latest release. |
| 70 | + |
| 71 | + 8. Increase Test Coverage |
| 72 | + Write more widget & integration tests to improve code coverage. |
| 73 | + Ensure major UI and backend features are fully tested before release. |
| 74 | + |
| 75 | +Tech Stack & Tools |
| 76 | + Feature | Tech/Tools |
| 77 | + |
| 78 | + Frontend | Flutter (Dart) |
| 79 | + API Parsing | OpenAPI, Swagger |
| 80 | + JSON Enhancements | CodeMirror, Ace Editor |
| 81 | + GraphQL | GraphQL Parser (Dart) |
| 82 | + Testing | Widget Testing, Integration Testing |
| 83 | + Environment Handling | OS Environment Variables (Dart) |
| 84 | + |
| 85 | + |
| 86 | +Why This Project? |
| 87 | + Enhances Developer Productivity – Improves usability with better request handling, scripting, and JSON validation. |
| 88 | + Better GraphQL Support – Adds crucial missing features to enhance GraphQL development. |
| 89 | + Improves API Import/Export – Makes API Dash more interoperable with OpenAPI and Swagger. |
| 90 | + Strengthens Stability & Testing – Increases test coverage and enhances debugging efficiency. |
| 91 | + |
| 92 | +These improvements will help make API Dash more competitive with other API tools by adding support for advanced |
| 93 | +use cases such as authentication management, JSON syntax validation, and seamless GraphQL integration |
| 94 | + |
| 95 | +Future Scope |
| 96 | + Implement gRPC support to expand API Dash's capabilities. |
| 97 | + Improve UI/UX for better user experience. |
| 98 | + Add VS Code & JetBrains integration for a seamless developer workflow. |
| 99 | + |
| 100 | +This project will provide meaningful improvements to API Dash and enhance the overall user experience. |
| 101 | +I am excited to work on these features and contribute to making API Dash a more powerful tool! |
| 102 | + |
0 commit comments