Este tópico descreve como criar e acessar um serviço de back-end HTTP no API Gateway.
Pré-requisitos
Crie um ambiente de Virtual Private Cloud (VPC). Para mais informações, consulte Criar uma VPC com um bloco CIDR IPv4 e Criar uma VPC com um bloco CIDR IPv6.
Crie uma instância do Elastic Compute Service (ECS). Para mais informações, consulte Etapa 1: Criar uma instância ECS.
Neste exemplo, utiliza-se uma instância ECS implantada em uma VPC. A instância ECS reside na mesma região da instância do API Gateway. O Apache está implantado na instância ECS e usa a porta padrão 80. Para mais informações, consulte Etapa 4: Implantar o Apache.
Processo
Este tópico fornece um guia passo a passo que começa com a criação de um serviço de back-end. O guia também aborda a criação e a associação entre uma API e um aplicativo. Além disso, descreve como depurar a API online usando exemplos baseados em SDK e curl.
O processo consiste em seis etapas:
Criar um serviço de back-end: Configure um serviço de back-end como recurso na região onde sua instância do API Gateway reside. Você pode selecionar diretamente o serviço de back-end configurado ao criar uma API.
Criar um grupo de APIs: Crie um grupo de APIs. As APIs são gerenciadas em grupos com base nos tipos de negócio e na estrutura organizacional da empresa.
Criar uma API: Crie uma API no console do API Gateway.
Criar um aplicativo e autorizá-lo a chamar a API: Crie e autorize um aplicativo para usar como identidade na chamada da API.
Depurar a API: Verifique se a API funciona conforme o esperado usando o recurso de depuração online do console do API Gateway.
Chamar a API: Use um SDK fornecido pelo API Gateway ou execute um comando curl em uma ferramenta de linha de comando para chamar a API.
Etapa 1: Criar um serviço de back-end
O API Gateway permite configurar serviços de back-end como recursos de uma região para simplificar o gerenciamento. Basta criar um serviço de back-end no console do API Gateway e definir URLs diferentes para ambientes distintos. Depois, selecione diretamente o serviço de back-end configurado para criar uma API.
Faça login no console do API Gateway. Na barra de navegação superior, selecione uma região. No painel de navegação à esquerda, escolha . Em seguida, clique em Create Backend Service no canto superior direito.
Na caixa de diálogo Create Backend Service, defina Name como
httpd-online, Type comoHTTP/HTTPS Servicee clique em Confirm.Na página Backend Services, clique no serviço de back-end
httpd-online. Na página Backend Service Definition, clique na aba Production e depois em Create no canto superior direito.-
Na página Basic Information, insira
http://192.168.*.***:80na caixa Backend Service URL e clique em Publish.Notahttp://192.168.*.***:80é o endereço IP privado da instância ECS criada.
Etapa 2: Criar um grupo de APIs
As APIs são gerenciadas em grupos. Crie um grupo de APIs antes de criar uma API.
Na página API Groups, visualize o grupo criado e clique no nome dele para acessar a página Group Details. Nessa página, você pode bind a domain name, modify basic information e change the instance type do grupo de APIs.
O API Gateway atribui automaticamente um nome de domínio público de segundo nível ao grupo de APIs. Esse domínio serve apenas para depuração e tem limite de 100 chamadas por dia em regiões fora da China continental e 1.000 chamadas por dia em regiões dentro da China continental. Recomendamos vincular um nome de domínio independente após criar o grupo de APIs.
No painel de navegação à esquerda, escolha . Na página API Groups, clique em Create Group no canto superior direito.
Na caixa de diálogo Create Group, selecione uma instância na lista suspensa Instances, defina Group Name como
httpd-demo, BasePath como/e clique em Confirm.
Etapa 3: Criar uma API
No painel de navegação à esquerda, escolha . Na página API Groups, localize o grupo
httpd-democriado e clique em Manage APIs na coluna Actions.Na página APIs, clique em Create API no canto superior direito.
-
Na etapa Basic Information, configure os parâmetros e clique em Next. A tabela a seguir descreve os parâmetros:
Parâmetro
Exemplo
Group
httpd-demo
API Name
httpd-test
Security authentication
Alibaba Cloud App
AppCode Authentication
Enable AppCode Authentication (Header & Query)
Signature Algorithm
HMAC_SHA256
-
Na etapa Define API Request, configure os seguintes parâmetros e clique em Next.
NotaNesta etapa, define-se como um cliente (navegador web, aplicativo móvel ou sistema de negócios) solicita a API. Os parâmetros incluem Protocol, Request Path, HTTP Method, Request Mode e os itens da seção Request Parameters. Neste exemplo, Request Mode está definido como Pass-through. Isso indica que o API Gateway não processa os parâmetros enviados pelo cliente e os repassa diretamente ao back-end.
Defina Protocol como HTTP e HTTPS, Request path como /, HTTP Method como GET e Inbound Request Mode como pass-through.
-
Na etapa Define Backend Service, configure os seguintes parâmetros e clique em Next.
NotaDefina como o API Gateway mapeia e processa parâmetros e como se conecta ao endereço de back-end após receber uma solicitação do cliente. Neste exemplo, o tipo de serviço de back-end é HTTP(S) Service.
Parâmetro
Exemplo
Configuration Mode
Selecione Use Existing Backend Service.
Backend Service Type
Selecione HTTP/HTTPS Service.
Backend Service
httpd-onlineBackend Request Path
/
HTTP Method
GET
Backend Service Timeout Period
10000
Na etapa Define Response, configure os parâmetros na página conforme seus requisitos de negócios e clique em Create.
Na mensagem exibida, clique em Publish.
-
Na caixa de diálogo Publish API, defina Environment como Release, insira observações na seção Remarks e clique em Publish.
NotaApós modificar uma API, publique-a no ambiente correspondente para que a alteração tenha efeito. O API Gateway fornece três ambientes integrados: test, pre-release e production.
Etapa 4: Criar um aplicativo e autorizá-lo a chamar a API
Um aplicativo é uma identidade usada para chamar uma API. Na etapa Criar uma API deste exemplo, o método de autenticação está definido como Alibaba Cloud App. Portanto, após publicar a API, crie um aplicativo e conceda a ele permissões para chamar a API.
Criar um aplicativo
No painel de navegação à esquerda, escolha . Na página Apps, clique em Create App no canto superior direito.
Insira um nome de aplicativo no campo App Name e clique em Confirm. Neste exemplo, httpd é inserido como nome do aplicativo.
Na página Apps, clique no aplicativo
httpdcriado. Na página App Details, observe que dois métodos de autenticação estão disponíveis:AppKeyeAppCode. O métodoAppKeyinclui um par deAppKeyeAppSecret, funcionando de forma semelhante a um par de nome de usuário e senha. Ao chamar a API, passe oAppKeycomo parâmetro. OAppSecretcalcula assinaturas. O API Gateway verifica o par AppKey-AppSecret para autenticar sua identidade.
Autorizar o aplicativo a chamar a API
No painel de navegação à esquerda, escolha . Na página APIs, localize a API
http-teste clique em
> Authorize na coluna Actions.Na página Authorize, defina o parâmetro Stage como Production. Insira o nome do aplicativo criado na barra de pesquisa da seção Choose Apps for Authorization. No resultado da pesquisa, selecione o aplicativo criado, clique em Add na coluna Actions e clique em Confirm. Uma mensagem informará que o aplicativo está autorizado a chamar a API.
Etapa 5: Depurar a API
O API Gateway oferece suporte à depuração online. Recomendamos usar esse recurso para verificar se uma API está configurada corretamente antes de chamá-la em clientes.
No painel de navegação à esquerda, escolha . Na página Debug API, selecione a API
httpd-test, defina Verification Method como Use AppSecret e clique em Send Request.-
Se a chamada for bem-sucedida, verifique as informações de resposta para confirmar o êxito da configuração.
Uma chamada bem-sucedida retorna o código de status HTTP 200 OK e um corpo de resposta com o conteúdo da página de teste padrão do serviço Apache de back-end, como "It works!". Isso confirma que o API Gateway se conectou com sucesso ao serviço de back-end.
Etapa 6: Chamar a API
Ao executar as etapas anteriores, você criou e publicou a API, além de criar e autorizar um aplicativo para chamá-la e depurá-la. Nesta etapa, use os SDKs fornecidos pelo API Gateway para chamar uma API publicada a partir de um sistema de negócios.
Usar um SDK
No painel de navegação à esquerda, escolha . Na seção Sample Code for Node.js Signature in Other Languages, selecione uma linguagem, por exemplo, Node.js, e clique em View Sample Code for Node.js.
-
Execute o comando
$ npm install aliyun-api-gateway -Spara instalar o SDK de exemplo para Node.js via npm.No trecho de código a seguir, defina
YOUR_APP_KEYeYOUR_APP_SECRETcomo o AppKey e o AppSecret do aplicativo criado neste exemplo.// Import the SDK for Node.js that you downloaded. const Client = require('aliyun-api-gateway').Client; // Create an instance for the authorized application. Specify the AppKey and AppSecret of the authorized application. const client = new Client('YOUR_APP_KEY','YOUR_APP_SECRET'); async function get() { // Use the domain name of the API group to which the API that you want to call belongs. You can use the public second-level domain name provided by API Gateway to test API calls. However, a limit is imposed on the number of API calls. We recommend that you bind an independent domain name to the API Group. var url = 'YOUR_GROUP_DOMAIN'; var result = await client.get(url, { // Specify the request header. Some APIs can return data formats based on the specified response type. We recommend that you manually define the request header based on your business requirements. headers: { accept: 'application/json' }, }); console.log(JSON.stringify(result)); } get().catch((err) => { console.log(err.stack); });
Usar curl
No painel de navegação à esquerda, escolha Call APIs > Apps. Na página Apps, clique no aplicativo autorizado e obtenha seu AppCode na página exibida. Em seguida, use o código de exemplo a seguir para chamar a API:
curl -i -X GET "http://3fbf0648d01e4aa5a1d*******-cn-hangzhou.alicloudapi.com" -H "Authorization:APPCODE c404eca23959492b9f0e4d4d15****"
HTTP/1.1 200 OK
Date: Tue, 01 Aug 2023 09:41:07 GMT
Content-Type: text/html
Content-Length: 4897
Server: Apache/2.4.6 (CentOS)
X-Ca-Request-Id: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html>
<head>
<title>Apache HTTP Server Test Page</title>
</head>
<body>
...
<h1>Testing 123..</h1>
<p>This page is used to test the proper operation of the Apache HTTP server...</p>
...
</body>
</html>