{"id":27001637,"url":"https://github.com/kerelko/strawberry-fastapi-graphql-api","last_synced_at":"2026-04-11T06:04:30.873Z","repository":{"id":241123592,"uuid":"802820119","full_name":"KERELKO/strawberry-fastapi-graphql-api","owner":"KERELKO","description":"Simple FastAPI+GraphQL (Strawberry) API with SQLAlchemy and Postgresql, provides flexible retrieval of the entities.","archived":false,"fork":false,"pushed_at":"2025-03-30T15:35:16.000Z","size":712,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-30T16:28:59.301Z","etag":null,"topics":["fastapi","graphql","postges","postgresql","python","python3","sqlalchemy","strawberry","strawberry-graphql"],"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/KERELKO.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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}},"created_at":"2024-05-19T11:08:01.000Z","updated_at":"2025-03-30T15:35:19.000Z","dependencies_parsed_at":"2024-05-22T15:04:31.645Z","dependency_job_id":"0df6f60a-4828-42f9-8194-5d4cbd43c9c2","html_url":"https://github.com/KERELKO/strawberry-fastapi-graphql-api","commit_stats":null,"previous_names":["kerelko/strawberry-fastapi-product-service","kerelko/strawberry-fastapi-graphql-api"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/KERELKO%2Fstrawberry-fastapi-graphql-api","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/KERELKO%2Fstrawberry-fastapi-graphql-api/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/KERELKO%2Fstrawberry-fastapi-graphql-api/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/KERELKO%2Fstrawberry-fastapi-graphql-api/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/KERELKO","download_url":"https://codeload.github.com/KERELKO/strawberry-fastapi-graphql-api/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247118292,"owners_count":20886525,"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":["fastapi","graphql","postges","postgresql","python","python3","sqlalchemy","strawberry","strawberry-graphql"],"created_at":"2025-04-04T04:19:25.231Z","updated_at":"2025-12-30T23:09:29.478Z","avatar_url":"https://github.com/KERELKO.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# GraphQL API\n\n## Description\n- __Simple GraphQL API, built with [Strawberry](https://strawberry.rocks/) and [FastAPI](https://fastapi.tiangolo.com/)__  \n- __[Strawberry](https://strawberry.rocks/) is a developer friendly [GraphQL](https://graphql.org/) library for Python, designed for modern development.__  \n- __[GraphQL](https://graphql.org/) is a query language for APIs and a runtime for fulfilling queries with existing data. GraphQL provides a complete and understandable description of the data in API, gives clients the power to ask for exactly what they need and nothing more, makes it easier to evolve APIs over time, and enables powerful developer tools.__\n\n## Brief overview\n\n![image](https://github.com/KERELKO/Strawberry-fastapi-product-service/assets/89779202/493f4c2e-25ed-462d-b018-822fd7e03169)\n\n## Technologies\n- [FastAPI](https://fastapi.tiangolo.com/)\n- [Postgresql](https://www.postgresql.org/)\n- [Docker](https://www.docker.com/)\n- [SQLAlchemy](https://www.sqlalchemy.org/)\n- [Strawberry](https://strawberry.rocks/)\n- [Alembic](https://alembic.sqlalchemy.org/en/latest/)\n- [GraphQL](https://graphql.org/)\n\n## How To Use\n### Requirements\n- Docker\n- Docker-compose\n- Maketools\n### Installation\n1. Install the project with\n```\ngit clone https://github.com/KERELKO/strawberry-fastapi-graphql-api\n```\n2. Move to directory with __Dockerfile__ and create **.env** file based on **.env.example**\n```\ntouch .env\ncat .env.example \u003e .env\n```\n3. In the same directory run\n```\ndocker compose up\n```\n4. Go to http://localhost:8000/graphql in your browser and make your queries!\n\n![image](https://github.com/KERELKO/Fastapi-Graphql-product-service/assets/89779202/0546bd5c-2e63-4995-a77f-e776faf8ba6f)\n\n## Contributing\n\nIf you'd like to contribute to this project, feel free to fork the repository and submit a pull request. Please follow the existing code style and ensure that all tests pass before submitting your changes.\n\n## Project structure\n```\n.\n├── alembic.ini\n├── docker-compose.yaml\n├── Dockerfile\n├── entrypoint.sh\n├── LICENSE\n├── Makefile\n├── poetry.lock\n├── pyproject.toml\n├── README.md\n├── src\n│   ├── api\n│   │   ├── graphql\n│   │   │   ├── __init__.py\n│   │   │   └── v1\n│   │   │       ├── converters\n│   │   │       │   ├── __init__.py\n│   │   │       │   ├── product.py\n│   │   │       │   ├── review.py\n│   │   │       │   └── user.py\n│   │   │       ├── exceptions.py\n│   │   │       ├── __init__.py\n│   │   │       ├── interfaces.py\n│   │   │       ├── mutations\n│   │   │       │   ├── __init__.py\n│   │   │       │   ├── inputs.py\n│   │   │       │   ├── mutation.py\n│   │   │       │   ├── product.py\n│   │   │       │   ├── review.py\n│   │   │       │   └── user.py\n│   │   │       ├── queries\n│   │   │       │   ├── __init__.py\n│   │   │       │   ├── product.py\n│   │   │       │   ├── query.py\n│   │   │       │   ├── review.py\n│   │   │       │   └── user.py\n│   │   │       ├── resolvers\n│   │   │       │   ├── base.py\n│   │   │       │   ├── __init__.py\n│   │   │       │   ├── product.py\n│   │   │       │   ├── review.py\n│   │   │       │   └── user.py\n│   │   │       └── utils.py\n│   │   └── __init__.py\n│   ├── core\n│   │   ├── constants.py\n│   │   ├── db\n│   │   │   ├── __init__.py\n│   │   │   └── sqlalchemy\n│   │   │       ├── base.py\n│   │   │       ├── extensions.py\n│   │   │       ├── __init__.py\n│   │   │       └── models.py\n│   │   ├── di.py\n│   │   ├── dto.py\n│   │   ├── exceptions.py\n│   │   ├── __init__.py\n│   │   ├── settings.py\n│   │   └── utils.py\n│   ├── __init__.py\n│   ├── main.py\n│   └── repositories\n│       ├── base.py\n│       ├── __init__.py\n│       └── sqlalchemy\n│           ├── __init__.py\n│           ├── product.py\n│           ├── review.py\n│           └── user.py\n└── tests\n```\n\n## TODO\n- [ ] Tests\n- [x] Mutations\n- [ ] Logging\n- [ ] Pointer-based Pagination\n- [x] At least partly solve the N+1 problem\n- [x] Remake folder structure\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkerelko%2Fstrawberry-fastapi-graphql-api","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkerelko%2Fstrawberry-fastapi-graphql-api","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkerelko%2Fstrawberry-fastapi-graphql-api/lists"}