From 9c21c0c0d8ab97dc4c684f8e16b7aad3054d257e Mon Sep 17 00:00:00 2001 From: "Roman A. Taycher" Date: Sat, 18 Sep 2021 03:14:23 -0700 Subject: [PATCH 1/5] Add verify_ssl option to generated Client, use it in each api --- openapi_python_client/templates/client.py.jinja | 5 +++-- openapi_python_client/templates/endpoint_module.py.jinja | 1 + 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/openapi_python_client/templates/client.py.jinja b/openapi_python_client/templates/client.py.jinja index 23b409282..028a63a55 100644 --- a/openapi_python_client/templates/client.py.jinja +++ b/openapi_python_client/templates/client.py.jinja @@ -1,5 +1,5 @@ -from typing import Dict - +import ssl +from typing import Dict, Union import attr @attr.s(auto_attribs=True) @@ -10,6 +10,7 @@ class Client: cookies: Dict[str, str] = attr.ib(factory=dict, kw_only=True) headers: Dict[str, str] = attr.ib(factory=dict, kw_only=True) timeout: float = attr.ib(5.0, kw_only=True) + verify_ssl: Union[str, bool, ssl.SSLContext] = attr.ib(True, kw_only=True) def get_headers(self) -> Dict[str, str]: """ Get headers to be used in all endpoints """ diff --git a/openapi_python_client/templates/endpoint_module.py.jinja b/openapi_python_client/templates/endpoint_module.py.jinja index d347c0510..3339aa003 100644 --- a/openapi_python_client/templates/endpoint_module.py.jinja +++ b/openapi_python_client/templates/endpoint_module.py.jinja @@ -52,6 +52,7 @@ def _get_kwargs( {% if endpoint.query_parameters %} "params": params, {% endif %} + "verify": client.verify_ssl, } From c4f970a67dbe8813e9cef9e37ec65094d370e0d6 Mon Sep 17 00:00:00 2001 From: "Roman A. Taycher" Date: Sat, 18 Sep 2021 03:16:29 -0700 Subject: [PATCH 2/5] regenerate tests for verify_ssl changes --- .../my_test_api_client/api/default/get_common_parameters.py | 1 + .../my_test_api_client/api/default/post_common_parameters.py | 1 + .../api/location/get_location_query_optionality.py | 1 + .../parameters/delete_common_parameters_overriding_param.py | 1 + .../api/parameters/get_common_parameters_overriding_param.py | 1 + .../api/parameters/get_same_name_multiple_locations_param.py | 1 + .../api/parameters/multiple_path_parameters.py | 1 + .../my_test_api_client/api/tag1/get_tag_with_number.py | 1 + .../api/tests/defaults_tests_defaults_post.py | 1 + .../api/tests/get_basic_list_of_booleans.py | 1 + .../my_test_api_client/api/tests/get_basic_list_of_floats.py | 1 + .../api/tests/get_basic_list_of_integers.py | 1 + .../my_test_api_client/api/tests/get_basic_list_of_strings.py | 1 + .../my_test_api_client/api/tests/get_user_list.py | 1 + .../api/tests/int_enum_tests_int_enum_post.py | 1 + .../api/tests/json_body_tests_json_body_post.py | 1 + .../api/tests/no_response_tests_no_response_get.py | 1 + .../api/tests/octet_stream_tests_octet_stream_get.py | 1 + .../my_test_api_client/api/tests/post_form_data.py | 1 + .../my_test_api_client/api/tests/test_inline_objects.py | 1 + .../api/tests/token_with_cookie_auth_token_with_cookie_get.py | 1 + .../unsupported_content_tests_unsupported_content_get.py | 1 + .../api/tests/upload_file_tests_upload_post.py | 1 + .../api/tests/upload_multiple_files_tests_upload_post.py | 1 + .../golden-record/my_test_api_client/api/true_/false_.py | 1 + end_to_end_tests/golden-record/my_test_api_client/client.py | 4 +++- 26 files changed, 28 insertions(+), 1 deletion(-) diff --git a/end_to_end_tests/golden-record/my_test_api_client/api/default/get_common_parameters.py b/end_to_end_tests/golden-record/my_test_api_client/api/default/get_common_parameters.py index a3eea040e..8752954c9 100644 --- a/end_to_end_tests/golden-record/my_test_api_client/api/default/get_common_parameters.py +++ b/end_to_end_tests/golden-record/my_test_api_client/api/default/get_common_parameters.py @@ -27,6 +27,7 @@ def _get_kwargs( "cookies": cookies, "timeout": client.get_timeout(), "params": params, + "verify": client.verify_ssl, } diff --git a/end_to_end_tests/golden-record/my_test_api_client/api/default/post_common_parameters.py b/end_to_end_tests/golden-record/my_test_api_client/api/default/post_common_parameters.py index d84b5772f..b64273249 100644 --- a/end_to_end_tests/golden-record/my_test_api_client/api/default/post_common_parameters.py +++ b/end_to_end_tests/golden-record/my_test_api_client/api/default/post_common_parameters.py @@ -27,6 +27,7 @@ def _get_kwargs( "cookies": cookies, "timeout": client.get_timeout(), "params": params, + "verify": client.verify_ssl, } diff --git a/end_to_end_tests/golden-record/my_test_api_client/api/location/get_location_query_optionality.py b/end_to_end_tests/golden-record/my_test_api_client/api/location/get_location_query_optionality.py index b1a7bc14d..9503c2813 100644 --- a/end_to_end_tests/golden-record/my_test_api_client/api/location/get_location_query_optionality.py +++ b/end_to_end_tests/golden-record/my_test_api_client/api/location/get_location_query_optionality.py @@ -48,6 +48,7 @@ def _get_kwargs( "cookies": cookies, "timeout": client.get_timeout(), "params": params, + "verify": client.verify_ssl, } diff --git a/end_to_end_tests/golden-record/my_test_api_client/api/parameters/delete_common_parameters_overriding_param.py b/end_to_end_tests/golden-record/my_test_api_client/api/parameters/delete_common_parameters_overriding_param.py index 5dec6f543..724459e60 100644 --- a/end_to_end_tests/golden-record/my_test_api_client/api/parameters/delete_common_parameters_overriding_param.py +++ b/end_to_end_tests/golden-record/my_test_api_client/api/parameters/delete_common_parameters_overriding_param.py @@ -28,6 +28,7 @@ def _get_kwargs( "cookies": cookies, "timeout": client.get_timeout(), "params": params, + "verify": client.verify_ssl, } diff --git a/end_to_end_tests/golden-record/my_test_api_client/api/parameters/get_common_parameters_overriding_param.py b/end_to_end_tests/golden-record/my_test_api_client/api/parameters/get_common_parameters_overriding_param.py index 7a0566aae..127a802ba 100644 --- a/end_to_end_tests/golden-record/my_test_api_client/api/parameters/get_common_parameters_overriding_param.py +++ b/end_to_end_tests/golden-record/my_test_api_client/api/parameters/get_common_parameters_overriding_param.py @@ -28,6 +28,7 @@ def _get_kwargs( "cookies": cookies, "timeout": client.get_timeout(), "params": params, + "verify": client.verify_ssl, } diff --git a/end_to_end_tests/golden-record/my_test_api_client/api/parameters/get_same_name_multiple_locations_param.py b/end_to_end_tests/golden-record/my_test_api_client/api/parameters/get_same_name_multiple_locations_param.py index f37cacd7e..6008f66bd 100644 --- a/end_to_end_tests/golden-record/my_test_api_client/api/parameters/get_same_name_multiple_locations_param.py +++ b/end_to_end_tests/golden-record/my_test_api_client/api/parameters/get_same_name_multiple_locations_param.py @@ -36,6 +36,7 @@ def _get_kwargs( "cookies": cookies, "timeout": client.get_timeout(), "params": params, + "verify": client.verify_ssl, } diff --git a/end_to_end_tests/golden-record/my_test_api_client/api/parameters/multiple_path_parameters.py b/end_to_end_tests/golden-record/my_test_api_client/api/parameters/multiple_path_parameters.py index 54caf75e8..ef0656b26 100644 --- a/end_to_end_tests/golden-record/my_test_api_client/api/parameters/multiple_path_parameters.py +++ b/end_to_end_tests/golden-record/my_test_api_client/api/parameters/multiple_path_parameters.py @@ -26,6 +26,7 @@ def _get_kwargs( "headers": headers, "cookies": cookies, "timeout": client.get_timeout(), + "verify": client.verify_ssl, } diff --git a/end_to_end_tests/golden-record/my_test_api_client/api/tag1/get_tag_with_number.py b/end_to_end_tests/golden-record/my_test_api_client/api/tag1/get_tag_with_number.py index 88e592ce3..51613b806 100644 --- a/end_to_end_tests/golden-record/my_test_api_client/api/tag1/get_tag_with_number.py +++ b/end_to_end_tests/golden-record/my_test_api_client/api/tag1/get_tag_with_number.py @@ -20,6 +20,7 @@ def _get_kwargs( "headers": headers, "cookies": cookies, "timeout": client.get_timeout(), + "verify": client.verify_ssl, } diff --git a/end_to_end_tests/golden-record/my_test_api_client/api/tests/defaults_tests_defaults_post.py b/end_to_end_tests/golden-record/my_test_api_client/api/tests/defaults_tests_defaults_post.py index 5bf24d582..9f9fcc088 100644 --- a/end_to_end_tests/golden-record/my_test_api_client/api/tests/defaults_tests_defaults_post.py +++ b/end_to_end_tests/golden-record/my_test_api_client/api/tests/defaults_tests_defaults_post.py @@ -80,6 +80,7 @@ def _get_kwargs( "cookies": cookies, "timeout": client.get_timeout(), "params": params, + "verify": client.verify_ssl, } diff --git a/end_to_end_tests/golden-record/my_test_api_client/api/tests/get_basic_list_of_booleans.py b/end_to_end_tests/golden-record/my_test_api_client/api/tests/get_basic_list_of_booleans.py index 08c26dcdb..7776c56f7 100644 --- a/end_to_end_tests/golden-record/my_test_api_client/api/tests/get_basic_list_of_booleans.py +++ b/end_to_end_tests/golden-record/my_test_api_client/api/tests/get_basic_list_of_booleans.py @@ -20,6 +20,7 @@ def _get_kwargs( "headers": headers, "cookies": cookies, "timeout": client.get_timeout(), + "verify": client.verify_ssl, } diff --git a/end_to_end_tests/golden-record/my_test_api_client/api/tests/get_basic_list_of_floats.py b/end_to_end_tests/golden-record/my_test_api_client/api/tests/get_basic_list_of_floats.py index 4cd722164..d652f39c7 100644 --- a/end_to_end_tests/golden-record/my_test_api_client/api/tests/get_basic_list_of_floats.py +++ b/end_to_end_tests/golden-record/my_test_api_client/api/tests/get_basic_list_of_floats.py @@ -20,6 +20,7 @@ def _get_kwargs( "headers": headers, "cookies": cookies, "timeout": client.get_timeout(), + "verify": client.verify_ssl, } diff --git a/end_to_end_tests/golden-record/my_test_api_client/api/tests/get_basic_list_of_integers.py b/end_to_end_tests/golden-record/my_test_api_client/api/tests/get_basic_list_of_integers.py index badffd2a8..49f854186 100644 --- a/end_to_end_tests/golden-record/my_test_api_client/api/tests/get_basic_list_of_integers.py +++ b/end_to_end_tests/golden-record/my_test_api_client/api/tests/get_basic_list_of_integers.py @@ -20,6 +20,7 @@ def _get_kwargs( "headers": headers, "cookies": cookies, "timeout": client.get_timeout(), + "verify": client.verify_ssl, } diff --git a/end_to_end_tests/golden-record/my_test_api_client/api/tests/get_basic_list_of_strings.py b/end_to_end_tests/golden-record/my_test_api_client/api/tests/get_basic_list_of_strings.py index fa040b04b..21b7a340f 100644 --- a/end_to_end_tests/golden-record/my_test_api_client/api/tests/get_basic_list_of_strings.py +++ b/end_to_end_tests/golden-record/my_test_api_client/api/tests/get_basic_list_of_strings.py @@ -20,6 +20,7 @@ def _get_kwargs( "headers": headers, "cookies": cookies, "timeout": client.get_timeout(), + "verify": client.verify_ssl, } diff --git a/end_to_end_tests/golden-record/my_test_api_client/api/tests/get_user_list.py b/end_to_end_tests/golden-record/my_test_api_client/api/tests/get_user_list.py index 96ca18884..accd2378b 100644 --- a/end_to_end_tests/golden-record/my_test_api_client/api/tests/get_user_list.py +++ b/end_to_end_tests/golden-record/my_test_api_client/api/tests/get_user_list.py @@ -44,6 +44,7 @@ def _get_kwargs( "cookies": cookies, "timeout": client.get_timeout(), "params": params, + "verify": client.verify_ssl, } diff --git a/end_to_end_tests/golden-record/my_test_api_client/api/tests/int_enum_tests_int_enum_post.py b/end_to_end_tests/golden-record/my_test_api_client/api/tests/int_enum_tests_int_enum_post.py index d295ddaab..084892c6f 100644 --- a/end_to_end_tests/golden-record/my_test_api_client/api/tests/int_enum_tests_int_enum_post.py +++ b/end_to_end_tests/golden-record/my_test_api_client/api/tests/int_enum_tests_int_enum_post.py @@ -31,6 +31,7 @@ def _get_kwargs( "cookies": cookies, "timeout": client.get_timeout(), "params": params, + "verify": client.verify_ssl, } diff --git a/end_to_end_tests/golden-record/my_test_api_client/api/tests/json_body_tests_json_body_post.py b/end_to_end_tests/golden-record/my_test_api_client/api/tests/json_body_tests_json_body_post.py index eba1f9615..296685d07 100644 --- a/end_to_end_tests/golden-record/my_test_api_client/api/tests/json_body_tests_json_body_post.py +++ b/end_to_end_tests/golden-record/my_test_api_client/api/tests/json_body_tests_json_body_post.py @@ -26,6 +26,7 @@ def _get_kwargs( "cookies": cookies, "timeout": client.get_timeout(), "json": json_json_body, + "verify": client.verify_ssl, } diff --git a/end_to_end_tests/golden-record/my_test_api_client/api/tests/no_response_tests_no_response_get.py b/end_to_end_tests/golden-record/my_test_api_client/api/tests/no_response_tests_no_response_get.py index 9ba34b83b..71b3f46ba 100644 --- a/end_to_end_tests/golden-record/my_test_api_client/api/tests/no_response_tests_no_response_get.py +++ b/end_to_end_tests/golden-record/my_test_api_client/api/tests/no_response_tests_no_response_get.py @@ -20,6 +20,7 @@ def _get_kwargs( "headers": headers, "cookies": cookies, "timeout": client.get_timeout(), + "verify": client.verify_ssl, } diff --git a/end_to_end_tests/golden-record/my_test_api_client/api/tests/octet_stream_tests_octet_stream_get.py b/end_to_end_tests/golden-record/my_test_api_client/api/tests/octet_stream_tests_octet_stream_get.py index f399df6b5..6741306a4 100644 --- a/end_to_end_tests/golden-record/my_test_api_client/api/tests/octet_stream_tests_octet_stream_get.py +++ b/end_to_end_tests/golden-record/my_test_api_client/api/tests/octet_stream_tests_octet_stream_get.py @@ -21,6 +21,7 @@ def _get_kwargs( "headers": headers, "cookies": cookies, "timeout": client.get_timeout(), + "verify": client.verify_ssl, } diff --git a/end_to_end_tests/golden-record/my_test_api_client/api/tests/post_form_data.py b/end_to_end_tests/golden-record/my_test_api_client/api/tests/post_form_data.py index 5dafd287e..a92f4e8f8 100644 --- a/end_to_end_tests/golden-record/my_test_api_client/api/tests/post_form_data.py +++ b/end_to_end_tests/golden-record/my_test_api_client/api/tests/post_form_data.py @@ -23,6 +23,7 @@ def _get_kwargs( "cookies": cookies, "timeout": client.get_timeout(), "data": form_data.to_dict(), + "verify": client.verify_ssl, } diff --git a/end_to_end_tests/golden-record/my_test_api_client/api/tests/test_inline_objects.py b/end_to_end_tests/golden-record/my_test_api_client/api/tests/test_inline_objects.py index 59d12f3d6..a4d1919c7 100644 --- a/end_to_end_tests/golden-record/my_test_api_client/api/tests/test_inline_objects.py +++ b/end_to_end_tests/golden-record/my_test_api_client/api/tests/test_inline_objects.py @@ -26,6 +26,7 @@ def _get_kwargs( "cookies": cookies, "timeout": client.get_timeout(), "json": json_json_body, + "verify": client.verify_ssl, } diff --git a/end_to_end_tests/golden-record/my_test_api_client/api/tests/token_with_cookie_auth_token_with_cookie_get.py b/end_to_end_tests/golden-record/my_test_api_client/api/tests/token_with_cookie_auth_token_with_cookie_get.py index 90cf20b07..2e3a5cbfc 100644 --- a/end_to_end_tests/golden-record/my_test_api_client/api/tests/token_with_cookie_auth_token_with_cookie_get.py +++ b/end_to_end_tests/golden-record/my_test_api_client/api/tests/token_with_cookie_auth_token_with_cookie_get.py @@ -23,6 +23,7 @@ def _get_kwargs( "headers": headers, "cookies": cookies, "timeout": client.get_timeout(), + "verify": client.verify_ssl, } diff --git a/end_to_end_tests/golden-record/my_test_api_client/api/tests/unsupported_content_tests_unsupported_content_get.py b/end_to_end_tests/golden-record/my_test_api_client/api/tests/unsupported_content_tests_unsupported_content_get.py index 9c7776899..0fdb4ff2c 100644 --- a/end_to_end_tests/golden-record/my_test_api_client/api/tests/unsupported_content_tests_unsupported_content_get.py +++ b/end_to_end_tests/golden-record/my_test_api_client/api/tests/unsupported_content_tests_unsupported_content_get.py @@ -20,6 +20,7 @@ def _get_kwargs( "headers": headers, "cookies": cookies, "timeout": client.get_timeout(), + "verify": client.verify_ssl, } diff --git a/end_to_end_tests/golden-record/my_test_api_client/api/tests/upload_file_tests_upload_post.py b/end_to_end_tests/golden-record/my_test_api_client/api/tests/upload_file_tests_upload_post.py index d72aaae4d..6db011608 100644 --- a/end_to_end_tests/golden-record/my_test_api_client/api/tests/upload_file_tests_upload_post.py +++ b/end_to_end_tests/golden-record/my_test_api_client/api/tests/upload_file_tests_upload_post.py @@ -30,6 +30,7 @@ def _get_kwargs( "cookies": cookies, "timeout": client.get_timeout(), "files": multipart_multipart_data, + "verify": client.verify_ssl, } diff --git a/end_to_end_tests/golden-record/my_test_api_client/api/tests/upload_multiple_files_tests_upload_post.py b/end_to_end_tests/golden-record/my_test_api_client/api/tests/upload_multiple_files_tests_upload_post.py index e5e42d546..690d52ede 100644 --- a/end_to_end_tests/golden-record/my_test_api_client/api/tests/upload_multiple_files_tests_upload_post.py +++ b/end_to_end_tests/golden-record/my_test_api_client/api/tests/upload_multiple_files_tests_upload_post.py @@ -33,6 +33,7 @@ def _get_kwargs( "cookies": cookies, "timeout": client.get_timeout(), "files": multipart_multipart_data, + "verify": client.verify_ssl, } diff --git a/end_to_end_tests/golden-record/my_test_api_client/api/true_/false_.py b/end_to_end_tests/golden-record/my_test_api_client/api/true_/false_.py index fc26c3179..c5c172900 100644 --- a/end_to_end_tests/golden-record/my_test_api_client/api/true_/false_.py +++ b/end_to_end_tests/golden-record/my_test_api_client/api/true_/false_.py @@ -27,6 +27,7 @@ def _get_kwargs( "cookies": cookies, "timeout": client.get_timeout(), "params": params, + "verify": client.verify_ssl, } diff --git a/end_to_end_tests/golden-record/my_test_api_client/client.py b/end_to_end_tests/golden-record/my_test_api_client/client.py index 36fa529e0..9d3670988 100644 --- a/end_to_end_tests/golden-record/my_test_api_client/client.py +++ b/end_to_end_tests/golden-record/my_test_api_client/client.py @@ -1,4 +1,5 @@ -from typing import Dict +import ssl +from typing import Dict, Union import attr @@ -11,6 +12,7 @@ class Client: cookies: Dict[str, str] = attr.ib(factory=dict, kw_only=True) headers: Dict[str, str] = attr.ib(factory=dict, kw_only=True) timeout: float = attr.ib(5.0, kw_only=True) + verify_ssl: Union[str, bool, ssl.SSLContext] = attr.ib(True, kw_only=True) def get_headers(self) -> Dict[str, str]: """Get headers to be used in all endpoints""" From 2305f6e2cce4310faf2765a80b459130b7a1bd97 Mon Sep 17 00:00:00 2001 From: "Roman A. Taycher" Date: Wed, 22 Sep 2021 00:32:14 -0700 Subject: [PATCH 3/5] Update generated lib READMEw/verify_ssl example --- .../templates/README.md.jinja | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/openapi_python_client/templates/README.md.jinja b/openapi_python_client/templates/README.md.jinja index 84c156cb8..c63b22f74 100644 --- a/openapi_python_client/templates/README.md.jinja +++ b/openapi_python_client/templates/README.md.jinja @@ -41,6 +41,25 @@ my_data: MyDataModel = await get_my_data_model.asyncio(client=client) response: Response[MyDataModel] = await get_my_data_model.asyncio_detailed(client=client) ``` +By default when you're calling an https api it will attempt to verify that ssl is working correctly. +Using certificate verification is highly recommended most of the time and is the default. +But sometimes you may need to authenticate to a server (especially an internal server) using a custom certificate bundle. + +```python +client = AuthenticatedClient(base_url="https://internal_api.example.com", + token="SuperSecretToken", + verify_ssl='/path/to/certificate_bundle.pem') +``` + +or even disable ssl verification altogether, despite the fact that it can cause security risks. + +```python +client = AuthenticatedClient(base_url="https://internal_api.example.com", + token="SuperSecretToken", + verify_ssl=False) +``` +but be careful with it. + Things to know: 1. Every path/method combo becomes a Python module with four functions: 1. `sync`: Blocking request that returns parsed data (if successful) or `None` From 1e9a40b0820e1f03e3ffd1bbde1159308b9005dc Mon Sep 17 00:00:00 2001 From: "Roman A. Taycher" Date: Wed, 22 Sep 2021 00:35:09 -0700 Subject: [PATCH 4/5] regenerated end_to_end_tests README --- end_to_end_tests/golden-record/README.md | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/end_to_end_tests/golden-record/README.md b/end_to_end_tests/golden-record/README.md index 59706b18f..0f3664e77 100644 --- a/end_to_end_tests/golden-record/README.md +++ b/end_to_end_tests/golden-record/README.md @@ -41,6 +41,25 @@ my_data: MyDataModel = await get_my_data_model.asyncio(client=client) response: Response[MyDataModel] = await get_my_data_model.asyncio_detailed(client=client) ``` +By default when you're calling an https api it will attempt to verify that ssl is working correctly. +Using certificate verification is highly recommended most of the time and is the default. +But sometimes you may need to authenticate to a server (especially an internal server) using a custom certificate bundle. + +```python +client = AuthenticatedClient(base_url="https://internal_api.example.com", + token="SuperSecretToken", + verify_ssl='/path/to/certificate_bundle.pem') +``` + +or even disable ssl verification altogether, despite the fact that it can cause security risks. + +```python +client = AuthenticatedClient(base_url="https://internal_api.example.com", + token="SuperSecretToken", + verify_ssl=False) +``` +but be careful with it. + Things to know: 1. Every path/method combo becomes a Python module with four functions: 1. `sync`: Blocking request that returns parsed data (if successful) or `None` From 01b1bfff055be8cf57fee37c88f889b27bd8bb7b Mon Sep 17 00:00:00 2001 From: Dylan Anthony <43723790+dbanty@users.noreply.github.com> Date: Sat, 25 Sep 2021 14:47:07 -0600 Subject: [PATCH 5/5] docs: Reword README SSL verification notes. --- end_to_end_tests/golden-record/README.md | 23 ++++++++++--------- .../templates/README.md.jinja | 23 ++++++++++--------- 2 files changed, 24 insertions(+), 22 deletions(-) diff --git a/end_to_end_tests/golden-record/README.md b/end_to_end_tests/golden-record/README.md index 0f3664e77..f5f4b1c1c 100644 --- a/end_to_end_tests/golden-record/README.md +++ b/end_to_end_tests/golden-record/README.md @@ -41,24 +41,25 @@ my_data: MyDataModel = await get_my_data_model.asyncio(client=client) response: Response[MyDataModel] = await get_my_data_model.asyncio_detailed(client=client) ``` -By default when you're calling an https api it will attempt to verify that ssl is working correctly. -Using certificate verification is highly recommended most of the time and is the default. -But sometimes you may need to authenticate to a server (especially an internal server) using a custom certificate bundle. +By default, when you're calling an HTTPS API it will attempt to verify that SSL is working correctly. Using certificate verification is highly recommended most of the time, but sometimes you may need to authenticate to a server (especially an internal server) using a custom certificate bundle. ```python -client = AuthenticatedClient(base_url="https://internal_api.example.com", - token="SuperSecretToken", - verify_ssl='/path/to/certificate_bundle.pem') +client = AuthenticatedClient( + base_url="https://internal_api.example.com", + token="SuperSecretToken", + verify_ssl="/path/to/certificate_bundle.pem", +) ``` -or even disable ssl verification altogether, despite the fact that it can cause security risks. +You can also disable certificate validation altogether, but beware that **this is a security risk**. ```python -client = AuthenticatedClient(base_url="https://internal_api.example.com", - token="SuperSecretToken", - verify_ssl=False) +client = AuthenticatedClient( + base_url="https://internal_api.example.com", + token="SuperSecretToken", + verify_ssl=False +) ``` -but be careful with it. Things to know: 1. Every path/method combo becomes a Python module with four functions: diff --git a/openapi_python_client/templates/README.md.jinja b/openapi_python_client/templates/README.md.jinja index c63b22f74..e35cd252a 100644 --- a/openapi_python_client/templates/README.md.jinja +++ b/openapi_python_client/templates/README.md.jinja @@ -41,24 +41,25 @@ my_data: MyDataModel = await get_my_data_model.asyncio(client=client) response: Response[MyDataModel] = await get_my_data_model.asyncio_detailed(client=client) ``` -By default when you're calling an https api it will attempt to verify that ssl is working correctly. -Using certificate verification is highly recommended most of the time and is the default. -But sometimes you may need to authenticate to a server (especially an internal server) using a custom certificate bundle. +By default, when you're calling an HTTPS API it will attempt to verify that SSL is working correctly. Using certificate verification is highly recommended most of the time, but sometimes you may need to authenticate to a server (especially an internal server) using a custom certificate bundle. ```python -client = AuthenticatedClient(base_url="https://internal_api.example.com", - token="SuperSecretToken", - verify_ssl='/path/to/certificate_bundle.pem') +client = AuthenticatedClient( + base_url="https://internal_api.example.com", + token="SuperSecretToken", + verify_ssl="/path/to/certificate_bundle.pem", +) ``` -or even disable ssl verification altogether, despite the fact that it can cause security risks. +You can also disable certificate validation altogether, but beware that **this is a security risk**. ```python -client = AuthenticatedClient(base_url="https://internal_api.example.com", - token="SuperSecretToken", - verify_ssl=False) +client = AuthenticatedClient( + base_url="https://internal_api.example.com", + token="SuperSecretToken", + verify_ssl=False +) ``` -but be careful with it. Things to know: 1. Every path/method combo becomes a Python module with four functions: