diff --git a/doc/dev_guide/api_endpoints_for_testing.md b/doc/dev_guide/api_endpoints_for_testing.md index 7f2e9556..f1082884 100644 --- a/doc/dev_guide/api_endpoints_for_testing.md +++ b/doc/dev_guide/api_endpoints_for_testing.md @@ -11,7 +11,10 @@ A List of API endpoints that can be used for testing API Dash #### For Testing HTTP PUT, PATCH, DELETE - https://reqres.in/ - + +#### For Testing HTTP OPTIONS, TRACE +- Use localhost servers, as TRACE and OPTIONS HTTP methods are not publicly available (used for diagnostic purposes) + #### For Testing sites with Bad Certificate - https://badssl.com/ - https://www.ssl.com/sample-valid-revoked-and-expired-ssl-tls-certificates/ diff --git a/lib/utils/ui_utils.dart b/lib/utils/ui_utils.dart index 4f72a1a3..68eaa82c 100644 --- a/lib/utils/ui_utils.dart +++ b/lib/utils/ui_utils.dart @@ -51,6 +51,7 @@ Color getHTTPMethodColor(HTTPVerb? method) { HTTPVerb.put => kColorHttpMethodPut, HTTPVerb.patch => kColorHttpMethodPatch, HTTPVerb.delete => kColorHttpMethodDelete, + HTTPVerb.options => kColorHttpMethodOptions, _ => kColorHttpMethodGet, }; return col; diff --git a/packages/apidash_core/lib/consts.dart b/packages/apidash_core/lib/consts.dart index 1d7044c7..c1d45ad4 100644 --- a/packages/apidash_core/lib/consts.dart +++ b/packages/apidash_core/lib/consts.dart @@ -17,7 +17,8 @@ enum HTTPVerb { post("POST"), put("PUT"), patch("PAT"), - delete("DEL"); + delete("DEL"), + options("OPT"); const HTTPVerb(this.abbr); final String abbr; diff --git a/packages/apidash_core/lib/services/http_service.dart b/packages/apidash_core/lib/services/http_service.dart index dbd93086..642ce89d 100644 --- a/packages/apidash_core/lib/services/http_service.dart +++ b/packages/apidash_core/lib/services/http_service.dart @@ -104,6 +104,17 @@ Future<(HttpResponse?, Duration?, String?)> sendHttpRequest( final streamed = await client.send(request); response = await http.Response.fromStream(streamed); break; + case HTTPVerb.options: + final request = prepareHttpRequest( + url: requestUrl, + method: requestModel.method.name.toUpperCase(), + headers: headers, + body: body, + overrideContentType: overrideContentType, + ); + final streamed = await client.send(request); + response = await http.Response.fromStream(streamed); + break; } } if (apiType == APIType.graphql) { diff --git a/packages/apidash_design_system/lib/tokens/colors.dart b/packages/apidash_design_system/lib/tokens/colors.dart index 11943bd3..22b6780c 100644 --- a/packages/apidash_design_system/lib/tokens/colors.dart +++ b/packages/apidash_design_system/lib/tokens/colors.dart @@ -23,6 +23,7 @@ final kColorHttpMethodPost = Colors.blue.shade800; final kColorHttpMethodPut = Colors.amber.shade900; final kColorHttpMethodPatch = kColorHttpMethodPut; final kColorHttpMethodDelete = Colors.red.shade800; +final kColorHttpMethodOptions = Colors.yellow.shade800; final kColorGQL = Colors.pink.shade600;