/aiohttp-pet-api

Async aiohttp pets REST API

Primary LanguagePython

Pet REST API

About

Tools
  • web framework - aiohttp
  • database - PostgreSQL 11
  • db connection - aiopg, SQLAlchemy(core)
  • data serialization - Marshmallow
  • testing - pytest
Requirenments:
  • docker, docker-compose

Content

Available endpoints:

  • /pets GET, POST - List all pets, create new
    • ?type=type
    • ?shelterId=uuid
  • /pets/{uuid} GET, PATCH, DELETE - Retrieve, update or delete pet
  • /shelters GET, POST - List all shelters, create new
    • ?city=city
  • /shelters/{uuid} GET - Retrieve shelter details
  • /shelters/{uuid}/pets GET - List pets from shelter
    • ?type=type

Running local

Run app by docker compose locally(on Linux):

  1. Open terminal
  2. Copy git repository
  3. Go to the project directory:
    $ cd pet_api
  4. Build images:
    $ docker-compose build
  5. Run containers:
    $ docker-compose up -d
  6. Create a database:
    $ docker-compose exec a_app python db.py
  7. Load sample data:
    $ docker-compose exec a_app python db_data.py
  8. Run tests:
    $ docker-compose exec a_app pytest
  9. The server should be running on: localhost:8080