From c97fa86455cbf20382a4d9f8e784ce2096acfa28 Mon Sep 17 00:00:00 2001 From: Yorick Holkamp Date: Thu, 5 Aug 2021 20:39:07 +0200 Subject: [PATCH 1/2] Include request body on DELETE call This change updates the generated `ApiClient` to include the request body on DELETE calls. [Per the RFC on page 2][1], DELETE calls are allowed to have a request body, even though the behavior may be undefined. I've not come across many APIs that use this behavior but there are a few, in particular the [Ory Kratos API][2] does so, not forwarding the body prevents such an API from being used. An API spec that does not define a request body should continue to function as expected. [1] https://datatracker.ietf.org/doc/html/rfc7231#section-4.3.5 [2] https://www.ory.sh/kratos/docs/reference/api/#operation/submitSelfServiceLogoutFlowWithoutBrowser --- .../src/main/resources/dart2/api_client.mustache | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/openapi-generator/src/main/resources/dart2/api_client.mustache b/modules/openapi-generator/src/main/resources/dart2/api_client.mustache index d7f90713d5fc..822fe2912c8f 100644 --- a/modules/openapi-generator/src/main/resources/dart2/api_client.mustache +++ b/modules/openapi-generator/src/main/resources/dart2/api_client.mustache @@ -127,7 +127,7 @@ class ApiClient { switch(method) { case 'POST': return await _client.post(uri, headers: nullableHeaderParams, body: msgBody,); case 'PUT': return await _client.put(uri, headers: nullableHeaderParams, body: msgBody,); - case 'DELETE': return await _client.delete(uri, headers: nullableHeaderParams,); + case 'DELETE': return await _client.delete(uri, headers: nullableHeaderParams, body: msgBody,); case 'PATCH': return await _client.patch(uri, headers: nullableHeaderParams, body: msgBody,); case 'HEAD': return await _client.head(uri, headers: nullableHeaderParams,); case 'GET': return await _client.get(uri, headers: nullableHeaderParams,); From 7fb7fdc5dd8588284766f0500cbce952b7f9a144 Mon Sep 17 00:00:00 2001 From: Yorick Holkamp Date: Thu, 5 Aug 2021 20:51:05 +0200 Subject: [PATCH 2/2] Samples generated with dart2 template change --- .../petstore/dart2/petstore_client_lib/lib/api_client.dart | 2 +- .../petstore/dart2/petstore_client_lib_fake/lib/api_client.dart | 2 +- .../lib/api_client.dart | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/samples/openapi3/client/petstore/dart2/petstore_client_lib/lib/api_client.dart b/samples/openapi3/client/petstore/dart2/petstore_client_lib/lib/api_client.dart index 37b6acfd4c6e..8833c281a295 100644 --- a/samples/openapi3/client/petstore/dart2/petstore_client_lib/lib/api_client.dart +++ b/samples/openapi3/client/petstore/dart2/petstore_client_lib/lib/api_client.dart @@ -120,7 +120,7 @@ class ApiClient { switch(method) { case 'POST': return await _client.post(uri, headers: nullableHeaderParams, body: msgBody,); case 'PUT': return await _client.put(uri, headers: nullableHeaderParams, body: msgBody,); - case 'DELETE': return await _client.delete(uri, headers: nullableHeaderParams,); + case 'DELETE': return await _client.delete(uri, headers: nullableHeaderParams, body: msgBody,); case 'PATCH': return await _client.patch(uri, headers: nullableHeaderParams, body: msgBody,); case 'HEAD': return await _client.head(uri, headers: nullableHeaderParams,); case 'GET': return await _client.get(uri, headers: nullableHeaderParams,); diff --git a/samples/openapi3/client/petstore/dart2/petstore_client_lib_fake/lib/api_client.dart b/samples/openapi3/client/petstore/dart2/petstore_client_lib_fake/lib/api_client.dart index b64c73d9772e..48ed9288e656 100644 --- a/samples/openapi3/client/petstore/dart2/petstore_client_lib_fake/lib/api_client.dart +++ b/samples/openapi3/client/petstore/dart2/petstore_client_lib_fake/lib/api_client.dart @@ -123,7 +123,7 @@ class ApiClient { switch(method) { case 'POST': return await _client.post(uri, headers: nullableHeaderParams, body: msgBody,); case 'PUT': return await _client.put(uri, headers: nullableHeaderParams, body: msgBody,); - case 'DELETE': return await _client.delete(uri, headers: nullableHeaderParams,); + case 'DELETE': return await _client.delete(uri, headers: nullableHeaderParams, body: msgBody,); case 'PATCH': return await _client.patch(uri, headers: nullableHeaderParams, body: msgBody,); case 'HEAD': return await _client.head(uri, headers: nullableHeaderParams,); case 'GET': return await _client.get(uri, headers: nullableHeaderParams,); diff --git a/samples/openapi3/client/petstore/dart2/petstore_json_serializable_client_lib_fake/lib/api_client.dart b/samples/openapi3/client/petstore/dart2/petstore_json_serializable_client_lib_fake/lib/api_client.dart index 02f98fe17a4c..8a3db870ecaa 100644 --- a/samples/openapi3/client/petstore/dart2/petstore_json_serializable_client_lib_fake/lib/api_client.dart +++ b/samples/openapi3/client/petstore/dart2/petstore_json_serializable_client_lib_fake/lib/api_client.dart @@ -123,7 +123,7 @@ class ApiClient { switch(method) { case 'POST': return await _client.post(uri, headers: nullableHeaderParams, body: msgBody,); case 'PUT': return await _client.put(uri, headers: nullableHeaderParams, body: msgBody,); - case 'DELETE': return await _client.delete(uri, headers: nullableHeaderParams,); + case 'DELETE': return await _client.delete(uri, headers: nullableHeaderParams, body: msgBody,); case 'PATCH': return await _client.patch(uri, headers: nullableHeaderParams, body: msgBody,); case 'HEAD': return await _client.head(uri, headers: nullableHeaderParams,); case 'GET': return await _client.get(uri, headers: nullableHeaderParams,);