{"id":20638410,"url":"https://github.com/genza999/api-security-and-best-practices","last_synced_at":"2025-10-09T10:37:47.410Z","repository":{"id":53663532,"uuid":"154733001","full_name":"Genza999/Api-security-and-Best-Practices","owner":"Genza999","description":"A set of projects demonstrating how to create secure and developer friendly  Apis  using python, SQLite and Flask","archived":false,"fork":false,"pushed_at":"2023-02-02T06:14:44.000Z","size":22,"stargazers_count":2,"open_issues_count":3,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2025-03-16T09:41:29.393Z","etag":null,"topics":[],"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/Genza999.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}},"created_at":"2018-10-25T20:25:28.000Z","updated_at":"2020-09-03T15:06:24.000Z","dependencies_parsed_at":"2023-02-17T15:01:19.605Z","dependency_job_id":null,"html_url":"https://github.com/Genza999/Api-security-and-Best-Practices","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Genza999/Api-security-and-Best-Practices","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Genza999%2FApi-security-and-Best-Practices","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Genza999%2FApi-security-and-Best-Practices/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Genza999%2FApi-security-and-Best-Practices/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Genza999%2FApi-security-and-Best-Practices/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Genza999","download_url":"https://codeload.github.com/Genza999/Api-security-and-Best-Practices/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Genza999%2FApi-security-and-Best-Practices/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279001270,"owners_count":26083040,"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","status":"online","status_checked_at":"2025-10-09T02:00:07.460Z","response_time":59,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":[],"created_at":"2024-11-16T15:17:56.864Z","updated_at":"2025-10-09T10:37:47.374Z","avatar_url":"https://github.com/Genza999.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Api-security-and-Best-Practices\nA set of projects from the Udacity Api coaurses demonstrating how to create secure and developer-friendly Apis using python, SQLite and Flask\n\n### Technologies Used\n\n* [Python](https://www.python.org)\n* [Flask](http://flask.pocoo.org/)\n* [sqlite](https://www.sqlite.org/)\n* [itsdangerous](https://pythonhosted.org/itsdangerous/) - Cryptographically secure token generation and verification\n* [Flask-HTTPAuth](https://github.com/miguelgrinberg/Flask-HTTPAuth) - Provide Basic and Digest HTTP authentication for Flask routes.\n* [passlib](https://passlib.readthedocs.io/en/stable/) - password hashing library for Python 2 \u0026 3\n\n\n### First Use the command below to build a perfect replica of the virtual environment:\n\n```\npip install -r requirements.txt\n```\n\n### The projects \n\n* #### Puppies\n  This project shows the basic structure of Api endpoints in Flask.\n\n  Within the Puppies directory, Run the following command to start the local server. \n  ```\n  python endpoints.py\n  ```\n  Then in a new terminal, Run the following command to test the Api's.\n  ```\n  python endpoints_tester.py\n  ```\n\n* #### MomandPopBagelShop project\n  This project shows how to use the flask httpauth to implement basic user authentication on Api routes.\n\n  Within the MomandPopBagelShop directory, Run the following command to start the local server. \n  ```\n  python views.py\n  ```\n  Then in a new terminal, Run the following command to test flask httpauth user authentication functionality imposed on the api routes.\n  ```\n  python bagel_tester.py\n  ```\n\n* #### RegalTreeFoods\n  This project demonstrates using token-based authentication on login systems.\n\n  Within the RegalTreeFoods directory, Run the following command to start the local server. \n  ```\n  python views.py\n  ```\n  Then in a new terminal, Run the following command to test the token-based authentication functionality imposed on the api routes.\n  ```\n  python fruit_tester.py\n  ```\n\n* #### BargainMart\n  This project demonstrates usage of rate limit on an Api endpoint such that after 60 requests per minute, the hungryclient.py is denied service and is made to wait before sending any more requests.\n  \n  Within the BargainMart directory, Run the following command to start the local server. \n  ```\n  python views.py\n  ```\n  Then in a new terminal, Run the following command to test the Rate Limit imposed on the getcatalog route api.\n  ```\n  python hungryclient.py\n  ```\n\n  #### Enjoy\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgenza999%2Fapi-security-and-best-practices","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgenza999%2Fapi-security-and-best-practices","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgenza999%2Fapi-security-and-best-practices/lists"}