Skip to content

Latest commit

 

History

History
80 lines (53 loc) · 2.95 KB

README.md

File metadata and controls

80 lines (53 loc) · 2.95 KB

API Server

Python3.6 Slack Channel Built with love Build Status

中文文档

This a backend API service of the voluntary information collection and sharing platform to fight against the 2019-nCoV outbreak in Wuhan and the world.

The API is designed to be thin and stateless. It relies on the data collected and validated by other sub-projects, transform and expose them through standard RESTful APIs. The service is written in Python and Flask.

Tech Arch Diagram

Get Started

Please first clone this repository and the sub-module-repo by:

git clone https://github.com/wuhan2020/api-server
cd api-server
git clone https://github.com/wuhan2020/wuhan2020

Running locally with Docker (Recommended)

Pre-requisite: You have to have Docker client installed on your machine.

Build the Docker image

Run:

docker build -t api-server:default .

from the root directory of the clone of this repo. Note this step could take a long time depends on where you are located in.

Run built Docker image

Run:

docker run --name api-server --publish 9000:9000 api-server:default 

and then open http://localhost:9000 in your browser. (Add -d to run the Docker container in detach/background mode)

You should see a Swagger page documents the available endpoints now.

If you ran into error The container name "/api-server" is already in use, please run docker rm api-server to delete previous container which has the same name.

Stop running Docker container

Run:

docker stop api-server 

to stop the running container.

Running with your own Python environment

Please make sure you have Python3.6 installed, (ideally you should be using a VirtualEnv or something like PyEnv). Then from the root directory of the cloned repo, run:

pip install -U -r requirements.txt

and then start the server by:

bash bootstrap

now if you open http://localhost:9000 in your browser, you should see a Swagger page documents the available endpoints.

Contributing Guide

Please see Conntributing Guide for more information about this project.

Front-end issues

Please check here