Simular uma API CRUD na Internet
O Proxy de Desenvolvimento permite simular APIs CRUD sem precisar criá-las. Simular APIs usando o Proxy de Desenvolvimento permite economizar tempo e acelerar o desenvolvimento. Ao integrar sua API aos serviços de nuvem, você precisa expor sua API pela Internet para que o serviço de nuvem possa acessá-la. Para expor uma API CRUD simulada pelo Proxy de Desenvolvimento na Internet, use Túneis de Desenvolvimento. Este artigo explica como configurar uma API CRUD a ser exposta na Internet usando Túneis de Desenvolvimento.
Dica
A API CRUD neste artigo baseia-se no exemplo de Proxy de Desenvolvimento do banco de dados Northwind.
Configurar a API CRUD a ser exposta na Internet
Para expor uma API CRUD simulada pelo Proxy de Desenvolvimento na Internet, comece configurando a API CRUD.
Importante
Neste momento, você só pode expor APIs CRUD HTTP na Internet usando Túneis de Desenvolvimento.
Definir os dados da API CRUD
Create um arquivo de dados, chamado orders-data.json
, que apoia a API CRUD, por exemplo:
[
{
"OrderID": 10248,
"CustomerID": "VINET",
"EmployeeID": 5,
"OrderDate": "1996-07-04T00:00:00",
"RequiredDate": "1996-08-01T00:00:00",
"ShippedDate": "1996-07-16T00:00:00",
"ShipVia": 3,
"Freight": 32.38,
"ShipName": "Vins et alcools Chevalier",
"ShipAddress": "59 rue de l'Abbaye",
"ShipCity": "Reims",
"ShipPostalCode": "51100",
"ShipCountry": "France"
},
{
"OrderID": 10249,
"CustomerID": "TOMSP",
"EmployeeID": 6,
"OrderDate": "1996-07-05T00:00:00",
"RequiredDate": "1996-08-16T00:00:00",
"ShippedDate": "1996-07-10T00:00:00",
"ShipVia": 1,
"Freight": 11.61,
"ShipName": "Toms Spezialitäten",
"ShipAddress": "Luisenstr. 48",
"ShipCity": "Münster",
"ShipPostalCode": "44087",
"ShipCountry": "Germany"
}
]
Configurar a API CRUD
Em seguida, crie o arquivo de configuração de API chamado orders-api.json
, em que você especifica a URL da API CRUD, suas operações e o arquivo de dados. Especifique uma URL HTTP na baseUrl
propriedade :
{
"$schema": "https://raw.githubusercontent.com/microsoft/dev-proxy/main/schemas/v0.17.0/crudapiplugin.schema.json",
"baseUrl": "http://api.northwind.com/orders",
"auth": "none",
"dataFile": "orders-data.json",
"actions": [
{
"action": "getAll"
},
{
"action": "getOne",
"url": "/{order-id}",
"query": "$.[?(@.OrderID == {order-id})]"
},
{
"action": "create"
},
{
"action": "merge",
"url": "/{order-id}",
"query": "$.[?(@.OrderID == {order-id})]"
},
{
"action": "delete",
"url": "/{order-id}",
"query": "$.[?(@.OrderID == {order-id})]"
}
]
}
Definir configuração do Proxy de Desenvolvimento
Em seguida, crie um arquivo de configuração de Proxy de Desenvolvimento chamado devproxyrc.json
com o CrudApiPlugin
habilitado. Configure o Proxy de Desenvolvimento para ouvir a URL que você configurou para sua API CRUD:
{
"$schema": "https://raw.githubusercontent.com/microsoft/dev-proxy/main/schemas/v0.17.0/rc.schema.json",
"plugins": [
{
"name": "CrudApiPlugin",
"enabled": true,
"pluginPath": "~appFolder/plugins/dev-proxy-plugins.dll",
"configSection": "ordersApi"
}
],
"urlsToWatch": [
"http://api.northwind.com/*"
],
"ordersApi": {
"apiFile": "orders-api.json"
}
}
Verificar a configuração
Verifique se a API CRUD está funcionando corretamente executando o Proxy de Desenvolvimento e enviando solicitações para a API CRUD.
Inicie o Proxy de Desenvolvimento, supondo que você salvou a configuração do Proxy de Desenvolvimento em um arquivo chamado devproxyrc.json
no diretório de trabalho atual:
devproxy
Chame a API CRUD usando curl:
$ curl -x http://127.0.0.1:8000 http://api.northwind.com/orders
[
{
"OrderID": 10248,
"CustomerID": "VINET",
"EmployeeID": 5,
"OrderDate": "1996-07-04T00:00:00",
"RequiredDate": "1996-08-01T00:00:00",
"ShippedDate": "1996-07-16T00:00:00",
"ShipVia": 3,
"Freight": 32.38,
"ShipName": "Vins et alcools Chevalier",
"ShipAddress": "59 rue de l'Abbaye",
"ShipCity": "Reims",
"ShipPostalCode": "51100",
"ShipCountry": "France"
},
{
"OrderID": 10249,
"CustomerID": "TOMSP",
"EmployeeID": 6,
"OrderDate": "1996-07-05T00:00:00",
"RequiredDate": "1996-08-16T00:00:00",
"ShippedDate": "1996-07-10T00:00:00",
"ShipVia": 1,
"Freight": 11.61,
"ShipName": "Toms Spezialitäten",
"ShipAddress": "Luisenstr. 48",
"ShipCity": "Münster",
"ShipPostalCode": "44087",
"ShipCountry": "Germany"
}
]
Expor a API CRUD na Internet
Para expor a API CRUD na Internet, inicie um túnel de desenvolvimento mapeado para a porta proxy de desenvolvimento. Configure o túnel para usar o nome do host configurado para a API CRUD.
Aviso
Permitir acesso anônimo a um túnel de desenvolvimento significa que qualquer pessoa na Internet pode se conectar ao servidor local, se puder adivinhar a ID do túnel de desenvolvimento.
$ devtunnel host -p 8000 -a --host-header api.northwind.com
Hosting port: 8000
Connect via browser: https://vpfm55qw.euw.devtunnels.ms:8000, https://vpfm55qw-8000.euw.devtunnels.ms
Inspect network activity: https://vpfm55qw-8000-inspect.euw.devtunnels.ms
Ready to accept connections for tunnel: vpfm55qw
Chame a API CRUD que o Proxy de Desenvolvimento simula por meio do túnel de desenvolvimento usando curl:
$ curl https://vpfm55qw-8000.euw.devtunnels.ms/orders
[
{
"OrderID": 10248,
"CustomerID": "VINET",
"EmployeeID": 5,
"OrderDate": "1996-07-04T00:00:00",
"RequiredDate": "1996-08-01T00:00:00",
"ShippedDate": "1996-07-16T00:00:00",
"ShipVia": 3,
"Freight": 32.38,
"ShipName": "Vins et alcools Chevalier",
"ShipAddress": "59 rue de l'Abbaye",
"ShipCity": "Reims",
"ShipPostalCode": "51100",
"ShipCountry": "France"
},
{
"OrderID": 10249,
"CustomerID": "TOMSP",
"EmployeeID": 6,
"OrderDate": "1996-07-05T00:00:00",
"RequiredDate": "1996-08-16T00:00:00",
"ShippedDate": "1996-07-10T00:00:00",
"ShipVia": 1,
"Freight": 11.61,
"ShipName": "Toms Spezialitäten",
"ShipAddress": "Luisenstr. 48",
"ShipCity": "Münster",
"ShipPostalCode": "44087",
"ShipCountry": "Germany"
}
]