/graphql-file_upload

Template for using GraphQL to upload files

Primary LanguagePython

GraphQL File Upload

Short description about the package.

๐Ÿš€ Getting Started

These instructions will get you a copy of the project up and running on your local machine for development and testing purposes. See deployment for notes on how to deploy the project on a live system.

๐Ÿ’ผ Prerequisites

You need:

  • Python 3 installed on your local machine.
    • use pyenv to manage multiple versions (recommended): link,
    • or you will find installation steps for your platform on the python official website,
  • pipenv for virtual environment management: link.

๐Ÿ–ฅ Installing

Clone the project:

git clone https://github.com/rjNemo/graphql-file_upload.git

Create a virtual environment and install dependencies with:

make local-setup

Then launch the development server using:

make run

A GraphiQL API explorer is available on the development server address: http://127.0.0.1:8000/graphql/.

๐ŸŽ‰ Enjoy!

โšก๏ธ Scripts

See Makefile for available scripts:

  • dev server
  • run tests

๐Ÿงช Running the tests

Tests are run using pytest and the test coverage is checked using pytest-cov.

make test

Unit tests

pipenv run test

Functional tests

pipenv run python -m pytest tests/functional_api

๐Ÿ’… And coding style tests

Coding style is enforced using black for formatting, flake8 for linting and mypy for static type checking. Additional security check are performed using bandit and safety.

make lint

โ—๏ธ It is encouraged to run linters and tests using make lint before committing to the repository.

๐Ÿ‘ฉโ€๐Ÿซ GraphQL: GraphCool-Grammar

We use a GraphQL grammar to structure the endpoints systematically.

GraphCool Grammar

๐Ÿ›  Built with

  • FastAPI - FastAPI framework, high performance, easy to learn, fast to code, ready for production
  • Ariadne - Python GraphQL schema-first

๐Ÿ’ป Contributing

Please read CONTRIBUTING.md for details on our code of conduct, and the process for submitting merge requests.