{"id":40126451,"url":"https://github.com/saleweaver/rapid-rest-client","last_synced_at":"2026-01-19T13:07:57.508Z","repository":{"id":38184620,"uuid":"446625837","full_name":"saleweaver/rapid-rest-client","owner":"saleweaver","description":"Super extensible API Client  ","archived":false,"fork":false,"pushed_at":"2024-11-05T22:27:27.000Z","size":47,"stargazers_count":19,"open_issues_count":2,"forks_count":5,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-10-14T14:16:04.788Z","etag":null,"topics":["api","client"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/saleweaver.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-01-11T00:29:05.000Z","updated_at":"2025-10-06T09:13:02.000Z","dependencies_parsed_at":"2024-02-28T00:31:49.280Z","dependency_job_id":"6fd18f25-9f1b-4dcd-8c75-c9a2fc5d1d2d","html_url":"https://github.com/saleweaver/rapid-rest-client","commit_stats":null,"previous_names":[],"tags_count":5,"template":false,"template_full_name":null,"purl":"pkg:github/saleweaver/rapid-rest-client","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/saleweaver%2Frapid-rest-client","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/saleweaver%2Frapid-rest-client/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/saleweaver%2Frapid-rest-client/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/saleweaver%2Frapid-rest-client/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/saleweaver","download_url":"https://codeload.github.com/saleweaver/rapid-rest-client/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/saleweaver%2Frapid-rest-client/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28568834,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-19T12:50:50.164Z","status":"ssl_error","status_checked_at":"2026-01-19T12:50:42.704Z","response_time":67,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["api","client"],"created_at":"2026-01-19T13:07:55.248Z","updated_at":"2026-01-19T13:07:57.499Z","avatar_url":"https://github.com/saleweaver.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"REST-CLIENT\n===========\n\n![Tests](https://codebuild.eu-central-1.amazonaws.com/badges?uuid=eyJlbmNyeXB0ZWREYXRhIjoiRy81RXhCL21iaEJXaHRieUg3Ly9IOVNkZjIvNWI4MmdGNG5sb2phR1pWNUk1TS9Xb0V6c2srL2hOMitobjNYOURueXR0eXVqTmV2M09XbWg1TFhwTW13PSIsIml2UGFyYW1ldGVyU3BlYyI6Ijk4V2xzeWp2K29uU0RNNDMiLCJtYXRlcmlhbFNldFNlcmlhbCI6MX0%3D\u0026branch=master)\n\nSetup a client in minutes\n\n---\n\n### Installation\n\n````bash\npip install rapid-rest-client\n````\n\n### Usage\n\nThere are multiple options to auto-create a client. Here's using a swagger definition:\n\n````python\nfrom rest_client.base import BaseUrlConfig, SwaggerApiConfiguration, Client\n\npetstore_endpoint_config: BaseUrlConfig = BaseUrlConfig('https://petstore.swagger.io/v2/')\n\n@SwaggerApiConfiguration(url='https://petstore.swagger.io/v2/swagger.json', base_url_config=petstore_endpoint_config)\nclass SwaggerUrlConfiguredClient(Client):\n    pass\n\nswagger_url_configured_client = SwaggerUrlConfiguredClient()\n\n# Client now has all paths available, as defined in the json file at url\n\nr = swagger_url_configured_client.find_pets_by_status(status='pending')\nprint(r)\n````\n\nYou can also pass the swagger definition as a dict:\n\n````python\n\n@SwaggerApiConfiguration(definition={\u003cswagger dict\u003e}, base_url_config=petstore_endpoint_config)\n\n````\n\nManually creating a client:\n\n```python\nfrom rest_client.base import BaseUrlConfig, ApiConfiguration, RequestConfig, Client\n\nendpoint_config: BaseUrlConfig = BaseUrlConfig('https://reqres.in/api/', 'https://sandbox.reqres.in/api/')\n\n@ApiConfiguration(endpoints=[\n    RequestConfig('users', 'list_users'),\n    RequestConfig('users/{}', 'get_user'),\n    RequestConfig('register', 'register_user', 'POST')\n], base_url_config=endpoint_config)\nclass ExampleClient(Client):\n    pass\n\n```\n\nThis makes these methods available on `ExampleClient`\n\n- list_users\n- get_user \n- register_user\n\n```python\nclient = ExampleClient()\nlist_users_response = client.list_users()\nget_user_response = client.get_user(3)\nregister_user_response = client.register_user(email=\"eve.holt@reqres.in\", password=\"pistol\")\n```\n\nIf you want to customize a method, you can simply add methods to a client. Use the `endpoint` decorator to do that:\n\n```python\nfrom rest_client.base import endpoint, Client\n\nclass ExampleClient(Client):\n    @endpoint('users', 'list_users')\n    def list_users(self, **kwargs):\n        return self._request(kwargs)\n\n```\n\nYou can also create the client from json, or a dict:\n\n````python\nfrom rest_client.base import DictApiConfiguration, BaseUrlConfig, Client\n\nendpoint_config: BaseUrlConfig = BaseUrlConfig('https://reqres.in/api/')\n\n@DictApiConfiguration(endpoints=[{\n    'path': 'users',\n    'name': 'list_users',\n}], base_url_config=endpoint_config)\nclass MyClient(Client):\n    pass\n````\n\n### Authentication\n\nYou can pass custom authentication through the `authentication_handler` property. Authentication handlers should extend AuthBase from `requests.auth`\n\nFor example: \n\n```python\nfrom rest_client.base import BaseUrlConfig, ApiConfiguration, RequestConfig, Client, BearerTokenAuth\n\nauth_endpoint_config: BaseUrlConfig = BaseUrlConfig('https://gorest.co.in/public/v1/')\n\n@ApiConfiguration(\n    endpoints=[\n        RequestConfig('users', 'register_user', 'POST'),\n    ],\n    base_url_config=auth_endpoint_config)\nclass AuthClient(Client):\n    pass\n\nauth_client = AuthClient(\n    authentication_handler=BearerTokenAuth('token')\n)\n```\n\n---\n\nPlease note:\n\nThis is a work in progress and completely new. Contributions are very welcome. \n\n---\n\n[![Quality gate](https://sonarcloud.io/api/project_badges/quality_gate?project=saleweaver_rapid_rest_client)](https://sonarcloud.io/summary/new_code?id=saleweaver_rapid_rest_client)\n\n[![Maintainability Rating](https://sonarcloud.io/api/project_badges/measure?project=saleweaver_rapid_rest_client\u0026metric=sqale_rating)](https://sonarcloud.io/summary/new_code?id=saleweaver_rapid_rest_client)\n[![Reliability Rating](https://sonarcloud.io/api/project_badges/measure?project=saleweaver_rapid_rest_client\u0026metric=reliability_rating)](https://sonarcloud.io/summary/new_code?id=saleweaver_rapid_rest_client)\n[![Coverage](https://sonarcloud.io/api/project_badges/measure?project=saleweaver_rapid_rest_client\u0026metric=coverage)](https://sonarcloud.io/summary/new_code?id=saleweaver_rapid_rest_client)\n\n\n[![Bugs](https://sonarcloud.io/api/project_badges/measure?project=saleweaver_rapid_rest_client\u0026metric=bugs)](https://sonarcloud.io/summary/new_code?id=saleweaver_rapid_rest_client)\n[![Code Smells](https://sonarcloud.io/api/project_badges/measure?project=saleweaver_rapid_rest_client\u0026metric=code_smells)](https://sonarcloud.io/summary/new_code?id=saleweaver_rapid_rest_client)\n[![Technical Debt](https://sonarcloud.io/api/project_badges/measure?project=saleweaver_rapid_rest_client\u0026metric=sqale_index)](https://sonarcloud.io/summary/new_code?id=saleweaver_rapid_rest_client)\n\n[![Security Rating](https://sonarcloud.io/api/project_badges/measure?project=saleweaver_rapid_rest_client\u0026metric=security_rating)](https://sonarcloud.io/summary/new_code?id=saleweaver_rapid_rest_client)\n[![Lines of Code](https://sonarcloud.io/api/project_badges/measure?project=saleweaver_rapid_rest_client\u0026metric=ncloc)](https://sonarcloud.io/summary/new_code?id=saleweaver_rapid_rest_client)\n[![Duplicated Lines (%)](https://sonarcloud.io/api/project_badges/measure?project=saleweaver_rapid_rest_client\u0026metric=duplicated_lines_density)](https://sonarcloud.io/summary/new_code?id=saleweaver_rapid_rest_client)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsaleweaver%2Frapid-rest-client","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsaleweaver%2Frapid-rest-client","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsaleweaver%2Frapid-rest-client/lists"}