/python-flask-microservice

Skeleton of a Microservice built with the Flask

Primary LanguagePythonApache License 2.0Apache-2.0

python-flask-microservice

This is the code used in this series of articles:

This is a basic approach of building a Microservice on top of Flask, with some useful packages like:

Requirements

We are going to build a microservice to index rooms information coming from another service (crawler). This service will be responsible for indexing the information into Elasticsearch.

The indexing will be a process of:

  • Validate and sanitize the data
  • Get some metadata from the room information like geolocalization
  • Upload the given images URL to Amazon S3
  • Send an event to RabbitMQ every time a new room has been indexed serializing the payload with Avro.

Endpoints:

Method URI Description Status
POST /room it will receive the room payload, and it will proceed to index it Development
PATCH /room/{id} this PATCH method will allow us to make changes on the indexed item Not started
DELETE /room/{id} this method will remove the room from the index Not started
GET /room/{id} this method will return the room data for a given room id Not started
GET /health-check This endpoint retuns the state of the service Not started

Running the environment

You need to have Docker installed in your machine, after that, just run this command docker-compose build && docker-compose up -d.