Skip to content

Commit 7625c7c

Browse files
authored
Merge pull request #732 from Zabith-Fulail/main
initial idea submisstion sabith fulail API Dash feature improvements
2 parents b7f3b81 + a9295a9 commit 7625c7c

File tree

1 file changed

+102
-0
lines changed

1 file changed

+102
-0
lines changed
Lines changed: 102 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,102 @@
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

Comments
 (0)