{"id":24438779,"url":"https://github.com/ezeparziale/fastapi-demo","last_synced_at":"2026-04-10T04:59:28.621Z","repository":{"id":44423060,"uuid":"441760804","full_name":"ezeparziale/fastapi-demo","owner":"ezeparziale","description":":circus_tent: Demo de apis utilizando FastApi","archived":false,"fork":false,"pushed_at":"2023-06-07T21:14:05.000Z","size":136,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-06-24T22:41:39.004Z","etag":null,"topics":["alembic","api","docker","docker-compose","fastapi","githubactions","heroku","postgres","python"],"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/ezeparziale.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,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2021-12-25T21:24:02.000Z","updated_at":"2024-06-02T07:03:22.000Z","dependencies_parsed_at":"2025-06-24T22:35:58.424Z","dependency_job_id":null,"html_url":"https://github.com/ezeparziale/fastapi-demo","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/ezeparziale/fastapi-demo","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ezeparziale%2Ffastapi-demo","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ezeparziale%2Ffastapi-demo/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ezeparziale%2Ffastapi-demo/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ezeparziale%2Ffastapi-demo/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ezeparziale","download_url":"https://codeload.github.com/ezeparziale/fastapi-demo/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ezeparziale%2Ffastapi-demo/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279006852,"owners_count":26084206,"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-11T02:00:06.511Z","response_time":55,"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":["alembic","api","docker","docker-compose","fastapi","githubactions","heroku","postgres","python"],"created_at":"2025-01-20T19:17:42.735Z","updated_at":"2025-10-11T10:37:51.082Z","avatar_url":"https://github.com/ezeparziale.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# :circus_tent: Demo Fast API\n\nAPI con varios endpoints utilizando FastAPI.  \nSirve de template para nuevas apis.\n\n## :runner: Run\n\n```bash\nuvicorn app.main:app --reload\n```\n\n## :star: CRUD\n\n### :rocket: Create\n\n#### Creación de un post\n\n```python\n@app.post(\"/api/v1/posts\")\n```\n\nBody:\n\n```python\n{\n    \"title\": \"CCC\",  # titulo de post\n    \"content\": \"ccc\",  # contenidos del post\n    \"published\": true  # esta publicado el post? True = Si | False = No\n}\n```\n\n#### Creación de un usuario\n\n```python\n@app.post(\"/api/v1/users\")\n```\n\nBody:\n\n```python\n{\n    \"email\": \"example_email@example.com\",\n    \"password\": \"my_password\"\n}\n```\n\n#### Login de usuario\n\n```python\n@app.post(\"/api/v1/login\")\n```\n\nParametros:\n\n``` python\nusername: \"example_email@example.com\"\npassword: \"my_password\"\n```\n\n#### Votación de post\n\n```python\n@app.post(\"/api/v1/vote\")\n```\n\nBody:\n\n```python\n{\n    \"post_id\": 1,  # id de post\n    \"dir\": 0  # 1 = LIKE | 0 = UNLIKE\n}\n```\n\n### :eyeglasses: Read\n\n#### Lectura de un post\n\n```python\n@app.get(\"/api/v1/posts/{id}\")  # id = post id\n```\n\n#### Lectura de todos los post\n\n```python\n@app.get(\"/api/v1/posts\")\n```\n\n#### Lectura de un usuario\n\n```python\n@app.get(\"/api/v1/users/{id}\")  # id = user id\n```\n\n### :coffee: Update\n\n#### Actualización de un post\n\n```python\n@app.put(\"/api/v1/posts/{id}\")  # id = post id\n```\n\n### :fire: Delete\n\n#### Borrado de un post\n\n```python\n@app.delete(\"/api/v1/posts/{id}\")  # id = post id\n```\n\n## :globe_with_meridians: HTTP Methods\n\n```http\nhttps://developer.mozilla.org/es/docs/Web/HTTP/Methods\n```\n\n## :compass: HTTP Status code\n\n```http\nhttps://developer.mozilla.org/es/docs/Web/HTTP/Status\n```\n\n## :memo: Docs\n\n```http\nhttp://127.0.0.1:8000/docs\n```\n\n```http\nhttp://127.0.0.1:8000/redoc\n```\n\n## :books: SQLAlchemy\n\n```http\nhttps://docs.sqlalchemy.org/en/14/\n```\n\n## :zap: FastAPI\n\n```http\nhttps://fastapi.tiangolo.com\n```\n\n## :satellite: psycopg\n\n```http\nhttps://www.psycopg.org\n```\n\n## :key: JWT\n\n```http\nhttps://jwt.io\n```\n\n## :alembic: Alembic\n\n```http\nhttps://alembic.sqlalchemy.org/en/latest/\n```\n\nPara inicializar alembic:\n\n```bash\nalembic init alembic\n```\n\nComandos más utilizados:\n\n```bash\nalembic revision -m \"add column to table xxx\"\nalembic current\nalembic heads\nalembic upgrade REVISION_ID\nalembic downgrade REVISION_ID\nalembic downgrade -1\nalembic history\nalembic upgrade head\n```\n\n## :test_tube: PyTest\n\nInstalación:\n\n```bash\npip install pytest\n```\n\nTutorial:\n\n```http\nhttps://fastapi.tiangolo.com/tutorial/testing/\n```\n\nComandos más utilizados:\n\n```bash\npytest\npytest -v -s  ## Best\npytest --disable-warnings\npytest --disable-warnings -v\npytest --disable-warnings -v -s\npytest --disable-warnings -v -s -x\n```\n\n## :robot: Heroku\n\nPlataforma en la nube gratis sin tarjeta de credito para devs:\n\n```http\nhttp://heroku.com\n```\n\nTutoriales:\n\n```http\nhttps://devcenter.heroku.com/articles/getting-started-with-python\n```\n\n```http\nhttps://devcenter.heroku.com/articles/heroku-postgresql\n```\n\nComandos más utilizados:\n\n```bash\nheroku login\nheroku create fastapi-demo\ngit push heroku main\nheroku logs -t\nheroku addons:create heroku-postgresql:hobby-dev\nheroku ps restart\nheroku apps:info fastapi-demo\nheroku run \"alembic upgrade head\"\nheroku ps -a fastapi-demo\n```\n\n## :package: Github Actions\n\n```http\nhttps://github.com/features/actions\n```\n\n```http\nhttps://docs.github.com/es/actions/using-containerized-services/creating-postgresql-service-containers\n```\n\n## :whale: Docker\n\n```http\nhttps://docs.docker.com/get-started/\n```\n\n```http\nhttps://docs.docker.com/compose/\n```\n\n```http\nhttps://hub.docker.com\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fezeparziale%2Ffastapi-demo","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fezeparziale%2Ffastapi-demo","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fezeparziale%2Ffastapi-demo/lists"}