{"id":19449387,"url":"https://github.com/aavache/fastapi-designs","last_synced_at":"2025-04-14T21:45:28.482Z","repository":{"id":188008408,"uuid":"677623005","full_name":"Aavache/fastapi-designs","owner":"Aavache","description":"FastAPI design patterns and building blocks to build an API","archived":false,"fork":false,"pushed_at":"2023-08-13T07:00:54.000Z","size":38,"stargazers_count":11,"open_issues_count":0,"forks_count":3,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-03-28T09:51:31.701Z","etag":null,"topics":["api","fastapi","patterns","python","restful-api","tutorial","web"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Aavache.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2023-08-12T04:47:09.000Z","updated_at":"2025-03-22T10:16:22.000Z","dependencies_parsed_at":"2023-08-13T09:10:27.664Z","dependency_job_id":null,"html_url":"https://github.com/Aavache/fastapi-designs","commit_stats":null,"previous_names":["aavache/fastapi-designs"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Aavache%2Ffastapi-designs","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Aavache%2Ffastapi-designs/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Aavache%2Ffastapi-designs/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Aavache%2Ffastapi-designs/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Aavache","download_url":"https://codeload.github.com/Aavache/fastapi-designs/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248966848,"owners_count":21190855,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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","fastapi","patterns","python","restful-api","tutorial","web"],"created_at":"2024-11-10T16:32:22.157Z","updated_at":"2025-04-14T21:45:28.457Z","avatar_url":"https://github.com/Aavache.png","language":"Python","readme":"\u003ch1 align=\"center\"\u003eFastAPI Designs\u003c/h1\u003e\n\nThis repository contains practical examples demonstrating various concepts and best practices for building powerful APIs using FastAPI. Each example showcases a specific aspect of API development and code samples to help you understand and implement these concepts effectively.\n\n## Installation\n\nInstall your dependencies with the following command:\n\n```sh\npip install -r requirements.txt\n```\n\n## Available Content\n\n1. [Building blocks](https://github.com/Aavache/fastapi-designs/tree/master/00_building_blocks)\n    1. [Pagination](https://github.com/Aavache/fastapi-designs/blob/master/00_building_blocks/00_pagination.py)\n    2. [Error handling](https://github.com/Aavache/fastapi-designs/blob/master/00_building_blocks/01_error_handling.py)\n    3. [URL Versioning](https://github.com/Aavache/fastapi-designs/blob/master/00_building_blocks/02_url_versioning.py) \n    4. [Header Versioning](https://github.com/Aavache/fastapi-designs/blob/master/00_building_blocks/03_header_versioning.py)\n    5. [Caching](https://github.com/Aavache/fastapi-designs/blob/master/00_building_blocks/04_caching.py)\n    6. [Deprecation](https://github.com/Aavache/fastapi-designs/blob/master/00_building_blocks/05_deprecation.py)\n    7. [Decorator](https://github.com/Aavache/fastapi-designs/blob/master/00_building_blocks/06_decorator.py)\n    8. [Decorator for auth](https://github.com/Aavache/fastapi-designs/blob/master/00_building_blocks/06_decorator_auth.py)\n    9. [Rate limitter](https://github.com/Aavache/fastapi-designs/blob/master/00_building_blocks/07_rate_limitters.py)\n    10. [Filtering and sorting](https://github.com/Aavache/fastapi-designs/blob/master/00_building_blocks/08_filtering_and_sorting.py)\n    11. [Bulk operations](https://github.com/Aavache/fastapi-designs/blob/master/00_building_blocks/09_bulk_operations.py)\n    12. [Authentification](https://github.com/Aavache/fastapi-designs/blob/master/00_building_blocks/10_authentication.py)\n    13. [WebHooks](https://github.com/Aavache/fastapi-designs/blob/master/00_building_blocks/11_webhooks.py)\n    14. [Async Polling](https://github.com/Aavache/fastapi-designs/blob/master/00_building_blocks/12_async_polling.py)\n    15. [Async Callback](https://github.com/Aavache/fastapi-designs/blob/master/00_building_blocks/13_async_callback.py)\n    16. [HATEOAS](https://github.com/Aavache/fastapi-designs/blob/master/00_building_blocks/14_hateoas.py)\n    17. [Singleton](https://github.com/Aavache/fastapi-designs/blob/master/00_building_blocks/15_singleton.py)\n    18. [Content negotiation](https://github.com/Aavache/fastapi-designs/blob/master/00_building_blocks/16_content_negotiation.py)\n    19. [Strategy pattern](https://github.com/Aavache/fastapi-designs/blob/master/00_building_blocks/17_strategy_pattern.py)\n    20. [Repository pattern](https://github.com/Aavache/fastapi-designs/blob/master/00_building_blocks/18_repository_pattern.py)\n2. [APIs](https://github.com/Aavache/fastapi-designs/tree/master/01_apis)\n    1. [RESTful](https://github.com/Aavache/fastapi-designs/blob/master/01_apis/00_restful.py)\n    2. [Message Queue](https://github.com/Aavache/fastapi-designs/blob/master/01_apis/01_mesage_queue.py)\n    3. [RPC](https://github.com/Aavache/fastapi-designs/blob/master/01_apis/02_rpc.py)\n    4. [Event driven](https://github.com/Aavache/fastapi-designs/blob/master/01_apis/03_event_driven.py)\n    5. [Hypermedia](https://github.com/Aavache/fastapi-designs/blob/master/01_apis/04_hypermedia.py)\n    6. [SOAP](https://github.com/Aavache/fastapi-designs/blob/master/01_apis/05_soap.py)\n\n## Disclaimer\n\nThis repository shows some API patterns and building blocks in a simplified manner, therefore it can serve as inspiration for real-case applications however it is likely to require extra adaption, for instance, we use an in-memory dictionary to simulate a database for some cases.\n\n## References\n\nThe scripts in this repository are based on the following documentation:\n1. [FastAPI](https://fastapi.tiangolo.com/) documentation.\n2. [Pika](https://pika.readthedocs.io/en/stable/) documentation.","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faavache%2Ffastapi-designs","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Faavache%2Ffastapi-designs","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faavache%2Ffastapi-designs/lists"}