Simular uma API CRUD na Internet
O Proxy de Programador permite-lhe simular APIs CRUD sem ter de as criar. Simular APIs com o Proxy de Programador permite-lhe poupar tempo e acelerar o desenvolvimento. Quando integrar a sua API com serviços cloud, tem de expor a sua API na Internet para que o serviço cloud possa aceder à mesma. Para expor uma API CRUD simulada pelo Proxy de Programador na Internet, utilize Túneis de Programador. Este artigo explica como configurar uma API CRUD para ser exposta na Internet através de Túneis de Programador.
Dica
A API CRUD neste artigo baseia-se no exemplo de Proxy de Programador da base de dados Northwind.
Configurar a API CRUD para ser exposta na Internet
Para expor uma API CRUD simulada pelo Proxy de Programador na Internet, comece por configurar a API CRUD.
Importante
Neste momento, só pode expor APIs CRUD HTTP na Internet através de Túneis de Programador.
Definir os dados da API CRUD
Create um ficheiro de dados com o nome orders-data.json
, que suporta 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 ficheiro de configuração da API com o nome orders-api.json
, onde especifica o URL da API CRUD, as operações e o ficheiro de dados. Certifique-se de que especifica um 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 a configuração do Proxy de Desenvolvimento
Em seguida, crie um ficheiro de configuração de Proxy Dev com o nome devproxyrc.json
com o CrudApiPlugin
ativado. Configure o Proxy de Programador para escutar o URL que configurou para a 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á a funcionar corretamente ao executar o Proxy de Programador e ao enviar pedidos para a API CRUD.
Inicie o Proxy de Programador, partindo do princípio de que guardou a configuração do Proxy deV num ficheiro com o nome devproxyrc.json
no diretório de trabalho atual:
devproxy
Chame a API CRUD com 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 programador mapeado para a porta de Proxy dev. Configure o túnel para utilizar o nome do anfitrião configurado para a API CRUD.
Aviso
Permitir o acesso anónimo a um túnel de programador significa que qualquer pessoa na Internet consegue ligar-se ao seu servidor local, se conseguir adivinhar o 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 Programador simula através do túnel de desenvolvimento com o 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"
}
]