Skip to main content

a API gateway on top of Redis

Project description

Contributors Forks Stargazers Issues MIT License LinkedIn


Logo

APIHub

APIHub is a platform to dynamically serve API services on-fly. API service workers can be deployed when needed.
Explore the docs »

View Demo · Report Bug · Request Feature

Table of Contents

  1. About The Project
  2. Getting Started
  3. Usage
  4. Roadmap
  5. Contributing
  6. License
  7. Contact
  8. Acknowledgements

About The Project

![Product Name Screen Shot][product-screenshot]

Here's a blank template to get started: To avoid retyping too much info. Do a search and replace with your text editor for the following: yifan, apihub, yifan2019, email, APIHub, project_description

Features & TODOs

[X] Security
    [X] authenticate
    [X] admin, manager, user
    [X] user management
    [X] rate limiter
    [ ] register
    [ ] social login
[ ] Subscription
    [-] subscription
    [-] quota
    [X] application token
    [-] daily usage record in redis
[ ] Async/sync API calls
    [ ] api worker reports input/output: describe
    [X] generic worker deployment 
    [ ] auto scaler for api workers

Built With

Getting Started

To get a local copy up and running follow these simple steps.

Prerequisites

This is an example of how to list things you need to use the software and how to install them.

Installation

  1. Clone the repo
    git clone https://github.com/yifan/apihub.git
    
  2. Install python packages
    poetry install
    

Usage

Use this space to show useful examples of how a project can be used. Additional screenshots, code examples and demos work well in this space. You may also link to more resources.

For more examples, please refer to the Documentation

Roadmap

See the open issues for a list of proposed features (and known issues).

Contributing

Contributions are what make the open source community such an amazing place to be learn, inspire, and create. Any contributions you make are greatly appreciated.

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/AmazingFeature)
  3. Commit your Changes (git commit -m 'Add some AmazingFeature')
  4. Push to the Branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

Testing

  1. Start postgres and redis
    docker compose up
    
  2. Setup environment variables in a local .env file
    cat >.env <<EOF
    DB_URI="postgresql://dbuser:dbpass@localhost:5432/test"
    JWT_SECRET="nosecret"
    REDIS="redis://localhost:6379/1"
    IN_REDIS="redis://localhost:6379/1"
    OUT_REDIS="redis://localhost:6379/1"
    SECURITY_TOKEN_EXPIRES_DAYS=1
    SUBSCRIPTION_TOKEN_EXPIRES_DAYS=1
    EOF
    
  3. Run tests
    poetry run test
    
  4. Shutdown docker services
    docker compose down
    

License

Distributed under the MIT License. See LICENSE for more information.

Contact

Yifan Zhang - @yifan2019 - yzhang@hbku.edu.qa

Project Link: https://github.com/yifan/apihub

Acknowledgements

Copyright (C) 2021, Qatar Computing Research Institute, HBKU

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

apihub-0.1.0.tar.gz (17.1 kB view hashes)

Uploaded Source

Built Distribution

apihub-0.1.0-py3-none-any.whl (18.7 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page