Plans

Uma API pode conter vários planos, onde cada plano define um conjunto de interceptors que serão executados dentro do Gateway. Um plano só é executado quando vinculado a uma App ou a um Access Token. A seguir, é exibido um diagrama que mostra a relação entre API, Plan, App e Access Token.

A listagem de planos apresenta o nome, a descrição e a API associada. Caso o plano seja o padrão, é exibida tag "Default Plan" ao lado do nome para identificação.

Para inserção de um novo plano, é necessário clicar no botão "Create Plan" como informado a seguir:

O cadastro é realizado em três etapas. A primeira delas é a inserção das informações básicas:

  • Name: Determina o nome do plano, sendo este único dentre uma série de planos de uma API;

  • Description: Não é um campo obrigatório, mas bastante usado para identificação do plano;

  • Default plan: Determina se o plano será padrão dentre os demais planos da API. Se o plano da API não for selecionado no cadastro de App ou Access Token, o plano padrão será definido. Lembrando que uma API só pode conter um único plano padrão;

  • Choose an API: Um plano está relacionado a uma API, sendo assim, a seleção se torna obrigatória. Deste modo, uma API pode conter vários planos.

  • Billing Quota: Caso a opção de Billing Quota seja selecionada, novos campos serão apresentados na tela para compor as informações de billing.

Billing Quota

Através dessa funcionalidade, é possível criar políticas de monetização para o uso de suas APIs.

  • Block Call: Determina se uma requisição deve ser interrompida ou não caso o valor da requisição ultrapasse o limite configurado no campo quota. Ex: se o campo estiver habilitado e uma requisição ultrapasse o limite estipulado, um erro 429 será apresentado.

  • Quota: Determina um valor limite que um plano poderá receber em um determinado espaço de tempo.

  • Recurrence: Determina a periodicidade em que as informações de billing do plano deverão ser armazenadas.

Para que as informações de billing sejam processadas, deverá existir no fluxo um interceptor de Billing Hits, ou um Custom Interceptor JavaScript configurado de forma que o método "$billing.execute($call)" seja invocado. Na execução de uma requisição serão identificados o(s) App(s) e/ou Access token(s) associados ao plano, e com base neles, será feito todo o processamento da funcionalidade de billing.

Caso a API acessada possua vários planos, e esses tenham configurado a opção de Billing, será considerado no processamento de billing o plano com o menor valor de quota.

Na segunda etapa, serão configurados os interceptors relacionados a API selecionada na etapa anterior. O fluxo pode ser criado para todas as Revisions ou para uma Revision em específico, que engloba Resources e Operations. Para maiores informações sobre o assunto, acessar o tópico Interceptors. Uma ressalva, não há herança para interceptors inseridos para todas Revisions, a herança se aplica apenas para a Revision que está selecionada. Os interceptors inseridos para todas Revisions só serão executados no Gateway quando não há nenhum interceptor inserido numa Revision em específico.

Já na terceira etapa, serão exibidos os dados previamente cadastrados ao longo do processo.

Por fim, é exibido uma mensagem que o plano foi criado com sucesso e também exibido dois links, de 'CREATE APP' e 'CREATE ACCESS TOKEN', para realizar o vínculo de App e Access Token junto ao plano.

Clone de plano

É possível criar uma cópia idêntica do plano. Para isso, basta clicar na opção de "Clone Plan" e será gerado uma cópia do plano selecionado com todos os interceptors existentes.

Como o plano é executado no Gateway?

Observe a imagem a seguir:

O funcionamento é executado da seguinte forma: 1. Assim que identificado a rota (vide cadastro de API), são executados os interceptors configurados na API; 2. Na execução dos interceptors relacionados a API são identificados o(s) App(s) e/ou Access token(s); 3. Com base nos App(s) e/ou Access token(s) vinculados, são executados os interceptors dos planos associados a eles.