Simular uma API CRUD

Ao criar aplicações, muitas vezes interage com APIs de back-end. Por vezes, estas APIs ainda não estão disponíveis ou outras equipas estão a atualizá-las para cumprir os requisitos mais recentes. Para evitar esperar, normalmente cria uma API fictícia que devolve os dados de que precisa. Embora esta abordagem o desbloqueie, é necessário que despende tempo na criação de uma API que eventualmente substituirá pela verdadeira. Para evitar perder tempo, pode utilizar o Proxy de Programador para simular uma API CRUD e acelerar o desenvolvimento.

Com o CrudApiPlugin, pode simular uma API CRUD (Criar, Ler, Atualizar, Eliminar) com um arquivo de dados dentro da memória. Com um ficheiro de configuração simples, pode definir os URLs suportados pela API fictícia e os dados que devolve. O plug-in também suporta CORS para utilização entre domínios a partir de aplicações do lado do cliente.

Quando o MockResponsePlugin permite definir respostas simuladas estáticas, permite-lhe CrudApiPlugin definir uma API simulada dinâmica que pode utilizar para interagir com dados e ver as suas alterações refletidas no conjunto de dados simulados.

Scenario

Digamos que está a criar uma aplicação que permite aos utilizadores gerir clientes. Para obter os dados, tem de chamar o /customers ponto final da API de back-end. Para evitar esperar que a equipa de back-end conclua o seu trabalho, decide utilizar o Proxy de Programador para simular a API e devolver os dados de que precisa.

Comece por ativar o CrudApiPlugin e configurá-lo para utilizar o customers-api.json ficheiro.

{
  "name": "CrudApiPlugin",
  "enabled": true,
  "pluginPath": "~appFolder/plugins/dev-proxy-plugins.dll",
  "configSection": "customersApi"
}
{
  "customersApi": {
    "apiFile": "customers-api.json"
  }
}

customers-api.json No ficheiro, define a API de clientes fictícios.

{
  "$schema": "https://raw.githubusercontent.com/microsoft/dev-proxy/main/schemas/v0.14.1/crudapiplugin.schema.json",
  "baseUrl": "https://api.contoso.com/v1/customers",
  "dataFile": "customers-data.json",
  "actions": [
    {
      "action": "getAll"
    },
    {
      "action": "getOne",
      "url": "/{customer-id}",
      "query": "$.[?(@.id == {customer-id})]"
    },
    {
      "action": "create"
    },
    {
      "action": "merge",
      "url": "/{customer-id}",
      "query": "$.[?(@.id == {customer-id})]"
    },
    {
      "action": "delete",
      "url": "/{customer-id}",
      "query": "$.[?(@.id == {customer-id})]"
    }
  ]
}

baseUrl Na propriedade , define o URL base da API fictícia. dataFile Na propriedade , define o ficheiro que contém dados fictícios do cliente. actions Na propriedade , define as ações suportadas e como são mapeadas para os métodos e URLs HTTP. Quer utilizar a API para:

  • obter todos os clientes, ao chamar GET /v1/customers
  • obter um único cliente, ao ligar GET /v1/customers/{customer-id}
  • adicionar um novo cliente, ao chamar POST /v1/customers,
  • atualizar um cliente, ao chamar PATCH /v1/customers/{customer-id},
  • eliminar um cliente, ao chamar DELETE /v1/customers/{customer-id}

Nos URLs, utilize o {customer-id} parâmetro , que o plug-in substitui pelo ID de cliente real do URL. O plug-in também utiliza o {customer-id} parâmetro numa consulta JSONPath para procurar o cliente no ficheiro de dados.

customers-data.json No ficheiro, define os dados fictícios do cliente.

[
  {
    "id": 1,
    "name": "Contoso",
    "address": "4567 Main St Buffalo, NY 98052"
  },
  {
    "id": 2,
    "name": "Fabrikam",
    "address": "4567 Main St Buffalo, NY 98052"
  }
]

Inicie o Proxy de Programador e chame o https://api.contoso.com/v1/customers ponto final. O Proxy Dev interceta o pedido e devolve os dados fictícios do cliente.

[
  {
    "id": 1,
    "name": "Contoso",
    "address": "4567 Main St Buffalo, NY 98052"
  },
  {
    "id": 2,
    "name": "Fabrikam",
    "address": "4567 Main St Buffalo, NY 98052"
  }
]

Passo seguinte

Saiba mais sobre o CrudApiPlugin.

Amostras

Veja também os exemplos de Proxy de Programador relacionados: