Skip to content
Snippets Groups Projects
README.md 1.24 KiB
Newer Older
  • Learn to ignore specific revisions
  • David Trattnig's avatar
    David Trattnig committed
    # Engine API Server
    
    David Trattnig's avatar
    David Trattnig committed
    
    ## Overview
    
    
    David Trattnig's avatar
    David Trattnig committed
    The Project serves the Engine API and handles state management of multiple Engine instances.
    
    This project is based on a swagger-enabled Flask server using an *API First* approach. It also uses the [Connexion](https://github.com/zalando/connexion) library on top of Flask.
    
    David Trattnig's avatar
    David Trattnig committed
    
    ## Requirements
    
    David Trattnig's avatar
    David Trattnig committed
    
    
    David Trattnig's avatar
    David Trattnig committed
    Python 3.7+
    
    David Trattnig's avatar
    David Trattnig committed
    
    
    David Trattnig's avatar
    David Trattnig committed
    ## Getting started
    
    
    David Trattnig's avatar
    David Trattnig committed
    Install the required dependencies:
    
    David Trattnig's avatar
    David Trattnig committed
    
    ```
    pip install -r requirements.txt
    ```
    
    
    David Trattnig's avatar
    David Trattnig committed
    To run the server, please execute the following from the root directory:
    
    ```
    ./run.sh api
    ```
    
    To run the API in an local development server execute:
    
    ```
    ./run.sh api-dev
    ```
    
    You can access the interactive documentation here:
    
    David Trattnig's avatar
    David Trattnig committed
    
    ```
    
    David Trattnig's avatar
    David Trattnig committed
    http://localhost:8008/api/v1/ui/
    
    David Trattnig's avatar
    David Trattnig committed
    ```
    
    
    David Trattnig's avatar
    David Trattnig committed
    Your OpenAPI definition lives here:
    
    David Trattnig's avatar
    David Trattnig committed
    
    ```
    
    David Trattnig's avatar
    David Trattnig committed
    http://localhost:8008/api/v1/openapi.json
    
    David Trattnig's avatar
    David Trattnig committed
    ```
    
    
    David Trattnig's avatar
    David Trattnig committed
    ## Testing
    
    
    David Trattnig's avatar
    David Trattnig committed
    To launch the integration tests, use tox:
    ```
    sudo pip install tox
    tox
    ```
    
    
    David Trattnig's avatar
    David Trattnig committed
    > Note, there are currently issues with the test environment, hence this doesn't work properly.
    
    
    David Trattnig's avatar
    David Trattnig committed
    ## Running with Docker
    
    To run the server on a Docker container, please execute the following from the root directory:
    
    ```bash
    
    David Trattnig's avatar
    David Trattnig committed
    # Building the image
    ./run.sh docker:build
    
    # Push the current image to dockerhub.com
    ./run.sh docker:push
    
    David Trattnig's avatar
    David Trattnig committed
    
    
    David Trattnig's avatar
    David Trattnig committed
    # Starting up a container
    ./run.sh docker:api
    
    David Trattnig's avatar
    David Trattnig committed
    ```