All Projects → 3scale → Apicast

3scale / Apicast

Licence: apache-2.0
3scale API Gateway

Programming Languages

lua
6591 projects

Projects that are alternatives of or similar to Apicast

Kong Docs Cn
微服务 Api 网关 Kong 最新文档中文版
Stars: ✭ 371 (+64.89%)
Mutual labels:  api-gateway, openresty
phi
an api-gateway based on openresty
Stars: ✭ 23 (-89.78%)
Mutual labels:  api-gateway, openresty
Ngr
A high-performance & enterprise-class edge gateway middleware
Stars: ✭ 89 (-60.44%)
Mutual labels:  api-gateway, openresty
Apioak
Full Lifecycle Management API Gateway.
Stars: ✭ 335 (+48.89%)
Mutual labels:  api-gateway, openresty
Api Umbrella
Open source API management platform
Stars: ✭ 1,735 (+671.11%)
Mutual labels:  api-gateway, openresty
Orange
OpenResty/Nginx Gateway for API Monitoring and Management.
Stars: ✭ 2,208 (+881.33%)
Mutual labels:  openresty
Aws Mobile React Native Starter
AWS Mobile React Native Starter App https://aws.amazon.com/mobile
Stars: ✭ 2,247 (+898.67%)
Mutual labels:  api-gateway
Oathkeeper
A cloud native Identity & Access Proxy / API (IAP) and Access Control Decision API that authenticates, authorizes, and mutates incoming HTTP(s) requests. Inspired by the BeyondCorp / Zero Trust white paper. Written in Go.
Stars: ✭ 2,442 (+985.33%)
Mutual labels:  api-gateway
Serverless Aws Alias
Alias support for Serverless 1.x
Stars: ✭ 171 (-24%)
Mutual labels:  api-gateway
Dice
前后端分离Blog系统,采用Nuxt、Vue 2.x 和 SpringBoot 全家桶。
Stars: ✭ 222 (-1.33%)
Mutual labels:  openresty
Apilogs
Easy logging and debugging for Amazon API Gateway and AWS Lambda Serverless APIs
Stars: ✭ 216 (-4%)
Mutual labels:  api-gateway
Serverless Sinatra Sample
Demo code for running Ruby Sinatra on AWS Lambda
Stars: ✭ 195 (-13.33%)
Mutual labels:  api-gateway
Lua Resty Redis Connector
Connection utilities for lua-resty-redis
Stars: ✭ 186 (-17.33%)
Mutual labels:  openresty
Sample Zuul Filters
Samples of custom Zuul 1 filters for use in Spring Cloud Netflix
Stars: ✭ 201 (-10.67%)
Mutual labels:  api-gateway
Graphql2rest
GraphQL to REST converter: automatically generate a RESTful API from your existing GraphQL API
Stars: ✭ 181 (-19.56%)
Mutual labels:  api-gateway
Lnmp
LEMP stack/LAMP stack/LNMP stack installation scripts for CentOS/Redhat Debian and Ubuntu
Stars: ✭ 2,488 (+1005.78%)
Mutual labels:  openresty
Frontend Application
💮 ALIS Media - Frontend Application
Stars: ✭ 181 (-19.56%)
Mutual labels:  api-gateway
Product Microgateway
A cloud native, developer centric and decentralized API gateway for microservices
Stars: ✭ 194 (-13.78%)
Mutual labels:  api-gateway
Express Gateway
A microservices API Gateway built on top of Express.js
Stars: ✭ 2,583 (+1048%)
Mutual labels:  api-gateway
Kanali
A Kubernetes Native API Management Solution
Stars: ✭ 192 (-14.67%)
Mutual labels:  api-gateway

APIcast

CircleCI Docker Repository on Quay codecov

APIcast is an API gateway built on top of NGINX. It is part of the Red Hat 3scale API Management Platform.

Getting started

master branch is not recommended for production use. For the latest release, go to the Releases page

Docker

You need to specify an ACCESS_TOKEN, that you can get from the 3scale admin portal, and also your ADMIN_PORTAL_DOMAIN. If you are using SaaS, it is YOUR_ACCOUNT-admin.3scale.net.

docker run --name apicast --rm -p 8080:8080 -e THREESCALE_PORTAL_ENDPOINT=https://[email protected]_PORTAL_DOMAIN quay.io/3scale/apicast:master

You can use a JSON configuration file instead:

docker run --name apicast --rm -p 8080:8080 -v $(pwd)/config.json:/opt/app/config.json:ro -e THREESCALE_CONFIG_FILE=/opt/app/config.json quay.io/3scale/apicast:master

In this example config.json is located in the same directory where the docker command is executed, and it is mounted as a volume at /opt/app/config.json. :ro indicates that the volume will be read-only.

The JSON file needs to follow the schema, see an example file with the fields that are used by APIcast.

Openshift

You need to create a secret with your ACCESS_TOKEN and your ADMIN_PORTAL_DOMAIN:

oc create secret generic apicast-configuration-url-secret \
   --from-literal=password=https://[email protected]_PORTAL_DOMAIN \
   --type=kubernetes.io/basic-auth
oc new-app -f https://raw.githubusercontent.com/3scale/apicast/master/openshift/apicast-template.yml

Features

  • Performance: it is fast because it's built on top of NGINX and uses LuaJIT.
  • Scalability: APIcast is stateless, so it scales horizontally.
  • Request transformation: allows to modify the headers, the path and the arguments of a request.
  • Rate-limit: can apply limits based on a header, JWT claims, the IP of the request and many more.
  • Modular and extensible: thanks to the APIcast policies framework.
  • Monitoring with Prometheus.
  • OpenTracing integration with Jaeger.
  • Can be deployed in Openshift.
  • Integrates with IDPs like Keycloak to provide authentication based on OIDC.

Development

Using Docker you just need to run:

make development

That will create a Docker container and run bash inside it. The project's source code will be available in the container and sync'ed with your local apicast directory, so you can edit files in your preferred environment and still be able to run whatever you need inside the Docker container.

To install the dependencies inside the container run:

make dependencies

To run the unit tests inside the container:

make busted

To run the integration tests inside the container:

make prove

To learn about the other available make targets:

make help

APIcast uses:

  • OpenResty: a platform that includes NGINX, LuaJIT and Lua modules.
  • busted: for the unit tests.
  • Test::Nginx: for the integration tests.

Documentation

License

Apache 2.0

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].