Parte 2: gerar e testar uma chave de API

Você está vendo a documentação do Apigee Edge.
Acesse a documentação da Apigee X.
informações

Refatorado e redirecionado para Proteger uma API exigindo chaves de API.

Um desenvolvedor cria um app que faz solicitações às suas APIs para acessar seus serviços de back-end. Para controlar o acesso às suas APIs, exija que o desenvolvedor transmita uma chave de API em todas as solicitações. Se a chave estiver ausente ou for inválida, a solicitação falhará.

A publicação é o processo de disponibilizar suas APIs para consumo pelos desenvolvedores de apps. As APIs Publishing podem ser definidas de maneira abrangente pelas seguintes tarefas:

  1. Criar os produtos de API no Apigee Edge que agrupam suas APIs.
  2. Registrar desenvolvedores de apps no Edge. Somente desenvolvedores registrados podem registrar apps.
  3. Os desenvolvedores registram aplicativos no Edge para acessar os produtos da API. Em resposta, o desenvolvedor recebe uma chave de API. Agora que o desenvolvedor tem uma chave de API, ele pode fazer solicitações às suas APIs.

Para mais informações, consulte Introdução à publicação.

A tabela a seguir define alguns dos termos usados para registrar apps e gerar chaves:

Termo Definição
Produto de API Um pacote de proxies de API combinado com um plano de serviços que define limites de acesso a essas APIs. Os produtos de API são o mecanismo central que o Apigee Edge usa para autorização e controle de acesso às suas APIs.
Desenvolvedor O consumidor da API. Os desenvolvedores escrevem apps que fazem solicitações às suas APIs.
App Um app do lado do cliente que um desenvolvedor registra para acessar um produto de API. Registrar o app com o produto de API gera a chave de API para acessar as APIs desse produto.
Chave de API Uma string com informações de autorização que um app do lado do cliente usa para acessar os recursos expostos pelo produto da API. A chave de API é gerada quando um app registrado é associado a um produto de API.

Pré-requisitos para este tutorial

Este tutorial presume que você concluiu o primeiro, em que criou um proxy de API para acessar a API Yahoo Weather. Se você ainda não concluiu o primeiro tutorial, consulte Proteger uma API exigindo chaves de API.

Etapa 1: criar um produto de API

  1. Na IU de gerenciamento, clique na guia Publicar e em Produtos.
  2. Clique em (+) Produto.
  3. Digite ou selecione o seguinte nos campos da caixa de diálogo "Add Product":
    Campo Valor
    Nome Produto sem custo financeiro de API
    Nome de exibição Produto sem custo financeiro de API
    Descrição Produto sem custo financeiro de API
    Ambiente teste
    Acesso Somente internas
    Tipo de aprovação da chave Automático
    (a chave de API é aprovada automaticamente depois de ser gerada)
    Cota 10 solicitações por 1 hora
    (o número de solicitações é limitado a 10 por hora)
    Escopos do OAuth permitidos deixe em branco

    A caixa de diálogo preenchida será parecida com esta:

  4. Na seção "Recursos", escolha:
    • Proxy de API: weatherapikey
    • Revisão: 1.
    • Caminho do recurso: /predictionrss**

      O Caminho do recurso especifica os URIs dos recursos que o produto permite que o app acesse. Neste exemplo, um app só pode acessar o recurso /forecastrss no proxy /forecastrss por meio desse produto de API. É proibido usar esse produto de API para acessar qualquer outro recurso no proxy weatherapiproxy ou em qualquer outro proxy.

      Caracteres curinga são permitidos no Caminho do recurso. O caractere curinga "/**" indica que todos os sub-URIs estão incluídos, ou seja, um recurso no formato /forecastrss/foo/bar. O caractere curinga "/" indica que apenas URIs um nível abaixo são incluídos. Consulte Criar produtos de API para saber mais.

      A lista suspensa Caminho do recurso mostra todos os fluxos condicionais definidos no proxy de API especificado. O fluxo condicional de um proxy de API define a lógica ou as etapas de processamento associadas a um caminho de recurso. Um produto de API controla o acesso a esses caminhos de recursos.
  5. Clique em Import Resource. O caminho do recurso é adicionado, e o proxy de API weatherapikey é adicionado automaticamente à seção Proxies de API para o produto.
  6. Clique em Salvar. O novo item aparece na página "Produtos".

Saiba mais:

Etapa 2: registrar um desenvolvedor

Para gerar uma chave de API, registre um app e associe-o a um produto de API. No entanto, não é possível registrar um app sem registrar o desenvolvedor do app primeiro.

  1. Na IU de gerenciamento, clique na guia Publicar e em Desenvolvedores.
  2. Clique em (+) Desenvolvedor.
  3. Na caixa de diálogo "Novo desenvolvedor", insira estes valores:
    • Nome: Jane
    • Sobrenome: Tutorial
    • Endereço de e-mail: janetutorial@example.com
    • Nome de usuário: jtutorial
  4. Clique em Salvar. O novo desenvolvedor aparece na lista da página "Desenvolvedores".

Saiba mais:

Etapa 3: registrar o app

Agora que você tem um produto de API e um desenvolvedor, é possível registrar um app para ele. O registro do app gera a chave de API para os produtos de API associados ao app. Em seguida, distribua a chave aos desenvolvedores de apps para que eles possam acessar os recursos dos produtos de API no app.

  1. Na interface da plataforma de APIs, clique na guia Publicar e em Apps para desenvolvedores.
  2. Clique em (+) App do desenvolvedor.
  3. Na caixa de diálogo "Add an App", insira os seguintes valores:
    • Nome de exibição: Weather API Key App
    • Desenvolvedor: Tutorial da Jane (janetutorial@example.com)
    • Callback URL: deixe em branco
  4. Associe o app a um produto:
    1. Na seção Produtos, clique em + Produto.
    2. Selecione Produto de API sem custo financeiro.
    3. Clique no ícone de marca de seleção para aceitar as mudanças.
  5. Clique em Salvar. O novo app aparece na lista da página "Apps do desenvolvedor".
  6. Selecione App de chave de API do clima na lista de apps. Isso abre a página de detalhes do app.
  7. Como você selecionou o Tipo de aprovação de chave: Automática ao criar o produto de API, a chave de API será aprovada automaticamente e poderá ser visualizada imediatamente. Se você tiver selecionado Tipo de aprovação: manual, clique em Aprovar na coluna "Ações" de "Produto de API sem custo financeiro" para aprovar a chave de API.
  8. Na seção "Produtos", ao lado da entrada Produto de API sem custo financeiro, clique em Mostrar nas colunas Chave do cliente e Segredo do cliente para exibir as chaves geradas.

    Chave do cliente é outro nome para a chave de API e é a única chave que um app precisa para acessar o recurso de previsão pelo proxy de API . A chave secreta do cliente e a chave do cliente são necessárias para proteger uma API pelo OAuth 2.0. Consulte, por exemplo, OAuth 2.0: como configurar um novo proxy de API.

Saiba mais:

Etapa 4: usar a chave de API em uma solicitação

Para garantir que a política VerifyAPIKey esteja funcionando corretamente, é preciso testá-la fazendo uma chamada para o proxy de API com uma chave de API válida. É possível solicitar o proxy de API em um navegador, na página "Trace" do proxy de API, no console da Apigee ou usando cURL. O URL a ser solicitado está no formato:

http://{org-name}-test.apigee.net/v1/weatherapikey/forecastrss?w=12797282&apikey=IEYRtW2cb7A5Gs54A1wKElECBL65GVls

Substitua o nome da sua organização da Apigee por {org-name} e o valor de apikey correto.

Procure o seguinte conteúdo na resposta:

<rss xmlns:yweather="http://xml.weather.yahoo.com/ns/rss/1.0" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" version="2.0"> 
<channel> <title>Yahoo! Weather - Palo Alto, CA</title> 
<link>http://us.rd.yahoo.com/dailynews/rss/weather/Palo_Alto__CA/*http://weather.yahoo.com/forecast/USCA1093_f.html</link> 
<description>Yahoo! Weather for Palo Alto, CA</description> <language>en-us</language>

Se você omitir a chave de API da solicitação ou especificar um valor de chave inválido, receberá uma resposta de erro no formato:

{"fault":{"faultstring":"Failed to resolve API Key variable null","detail":{"errorcode":"steps.oauth.v2.FailedToResolveAPIKey"}}}

Etapa 5: para onde ir?

Agora que você fez uma solicitação à API usando um parâmetro de consulta para transmitir a chave de API, modifique a API para transmiti-la como um cabeçalho.

Prossiga para Proteger uma API exigindo chaves de API.