Skip to main content

Remote ID Test Data Injection (v0.5.1)

Esta interface é fornecida por cada Provedor de Serviço (Service Provider) que deseja ser testado pelo framework de testes automatizados. A suíte de testes chama esta interface para injetar dados de voo no sistema sob teste.

Segurança (Autenticação)

  • Tipo: OAuth2 (Client Credentials)

  • Escopo Necessário: rid.inject_test_data

  • Descrição: Acesso concedido para injetar dados de teste em um Provedor de Serviços.

Endpoints

1. Criar Teste

Rota: PUT /tests/{test_id}

Solicita a criação de um ou mais voos lógicos baseados na injeção dos dados fornecidos. O ID de injeção (injection_id) não pode ser modificado pelo provedor.

  • Parâmetros de Rota: test_id (obrigatório) - O ID do teste. Exemplo: 2979bd18-7f06-441c-bda6-e82c841c35d6

  • Corpo da Requisição: Requer o objeto CreateTestParameters (uma lista de voos).

  • Respostas Esperadas:

    • 200 OK: Teste criado com sucesso. Retorna ChangeTestResponse.

    • 409 Conflict: O teste já existe.

2. Deletar Teste

Rota: DELETE /tests/{test_id}/{version}

Remove todos os dados de teste associados a este teste do injetor do Provedor de Serviços.

  • Parâmetros de Rota: test_id (obrigatório) e version (obrigatório).

  • Respostas Esperadas:

    • 200 OK: Teste deletado com sucesso. Retorna DeleteTestResponse.

3. Consultar Notificações de Usuário

Rota: GET /user_notifications

Retorna a lista de notificações observadas pelo usuário virtual. As notificações devem estar disponíveis em até 5 segundos após a observação.

  • Parâmetros de Query: * after (obrigatório): Não incluir notificações observadas antes deste horário.

    • before (opcional): Não incluir notificações após este horário. O padrão é o agora.

  • Respostas Esperadas:

    • 200 OK: Notificações recuperadas com sucesso.

    • 400 Bad Request: Faltando o parâmetro 'after' ou requisição inválida.

    • 401 Unauthorized: Token ausente, não pôde ser decodificado ou é inválido.

    • 403 Forbidden: Token decodificado, mas sem o escopo apropriado.

Payload de Exemplo (JSON)

Formato esperado para o envio das informações do voo:

JSON
{
  "requested_flights": [
    {
      "injection_id": "edb7695f-8737-4b9f-91f8-e2afbb333f41",
      "aircraft_type": "Aeroplane",
      "telemetry": [
        {
          "timestamp": "2024-04-22T16:36:50.52Z",
          "position": {
            "lat": -23.1791,
            "lng": -45.8872,
            "alt": 100.0
          }
        }
      ],
      "details_responses": [
        {
          "effective_after": "2024-04-22T16:36:50.52Z",
          "details": {
            "id": "a3423b-213401-0023"
          }
        }
      ]
    }
  ]
}