# Remote ID Display Data Observation (v0.3.0)

Esta interface é fornecida por cada Provedor de Exibição (Display Provider) que deseja ser testado pelo framework de testes automatizados. A suíte de testes chama esta interface para obter as informações atuais do Remote ID sob a perspectiva de um usuário do Provedor de Exibição.

## Segurança (Autenticação)

- **Tipo:** OAuth2 (Client Credentials)
- **Escopo Necessário:** dss.read.identification\_service\_areas
- **Descrição:** Acesso concedido para ler informações atuais do Remote ID. O token JWT deve ser enviado no header `Authorization: Bearer <token>`.

## Endpoints

### 1. Consultar Dados de Exibição (Poll Display Data)

**Rota:** `GET /display_data`

Solicita os dados atuais de exibição do Remote ID da mesma forma que seriam visualizados por uma Aplicação de Exibição (Display Application).

- **Parâmetros de Query:** \* view (obrigatório): A área desta visualização no formato lat1,lng1,lat2,lng2. A visualização é a menor caixa delimitada (bounding box) pelos pontos de canto fornecidos. Exemplo: 29.97816,31.13296,29.98025,31.13535
- **Respostas Esperadas:**
    
    
    - **200 OK:** Dados de exibição do Remote ID recuperados com sucesso. Retorna o schema GetDisplayDataResponse (contendo listas de voos e clusters).

### 2. Obter Detalhes do Voo

**Rota:** `GET /display_data/{id}`

Obtém os detalhes de um voo específico que foi previamente identificado através da rota `/display_data`.

- **Parâmetros de Rota:** \* id (obrigatório): O identificador do voo. Exemplo: 1e3adb99-acc9-424f-a04e-a0743538849a
- **Respostas Esperadas:**
    
    
    - **200 OK:** Detalhes sobre o voo solicitado foram recuperados com sucesso. Retorna o schema GetDetailsResponse.
    - **404 Not Found:** O voo solicitado não foi encontrado.

## Payloads de Exemplo (JSON)

### Exemplo de Resposta para `/display_data`

Formato esperado retornando voos conhecidos e aglomerados (clusters) onde a posição precisa não é exata:

<div _ngcontent-ng-c2141869219="" class="code-block ng-tns-c2141869219-80 ng-animate-disabled ng-trigger ng-trigger-codeBlockRevealAnimation" data-hveid="0" data-ved="0CAAQhtANahgKEwiB9JTg8o6VAxUAAAAAHQAAAAAQwQQ" decode-data-ved="1" id="bkmrk-json" jslog="223238;track:impression,attention;BardVeMetadataKey:[["r_6184fd1e7f5193f1","c_c96b9eb05b5ddc8a",null,"rc_777611a3a08aabdf",null,null,"pt",null,1,null,null,1,0]]"><div _ngcontent-ng-c2141869219="" class="formatted-code-block-internal-container ng-tns-c2141869219-80"><div _ngcontent-ng-c2141869219="" class="animated-opacity ng-tns-c2141869219-80"><div _ngcontent-ng-c2141869219="" class="code-block-decoration header-formatted gds-emphasized-body-m ng-tns-c2141869219-80 ng-star-inserted"><span class="ng-tns-c2141869219-80">JSON</span><div _ngcontent-ng-c2141869219="" class="buttons ng-tns-c2141869219-80 ng-star-inserted"><button aria-label="Baixar código" class="mdc-icon-button mat-mdc-icon-button mat-mdc-button-base mat-badge mat-unthemed mat-badge-overlap mat-badge-above mat-badge-after mat-badge-small mat-badge-hidden ng-star-inserted"></button><button aria-label="Copiar o código" class="mdc-icon-button mat-mdc-icon-button mat-mdc-button-base mat-badge mat-unthemed mat-badge-overlap mat-badge-above mat-badge-after mat-badge-small mat-badge-hidden ng-star-inserted"></button></div></div></div></div></div>```
{
  "flights": [
    {
      "id": "1e3adb99-acc9-424f-a04e-a0743538849a",
      "aircraft_type": "Aeroplane",
      "current_state": {
        "timestamp": "2024-04-22T16:36:50.52Z",
        "operational_status": "Airborne"
      },
      "most_recent_position": {
        "lat": -23.1791,
        "lng": -45.8872,
        "alt": 100.0
      }
    }
  ],
  "clusters": [
    {
      "corners": [
        { "lat": -23.179, "lng": -45.887 },
        { "lat": -23.180, "lng": -45.888 }
      ],
      "area_sqm": 15000.5,
      "number_of_flights": 3
    }
  ]
}

```

<div _ngcontent-ng-c2141869219="" class="code-block ng-tns-c2141869219-80 ng-animate-disabled ng-trigger ng-trigger-codeBlockRevealAnimation" data-hveid="0" data-ved="0CAAQhtANahgKEwiB9JTg8o6VAxUAAAAAHQAAAAAQwQQ" decode-data-ved="1" id="bkmrk--1" jslog="223238;track:impression,attention;BardVeMetadataKey:[["r_6184fd1e7f5193f1","c_c96b9eb05b5ddc8a",null,"rc_777611a3a08aabdf",null,null,"pt",null,1,null,null,1,0]]"><div _ngcontent-ng-c2141869219="" class="formatted-code-block-internal-container ng-tns-c2141869219-80"><div _ngcontent-ng-c2141869219="" class="animated-opacity ng-tns-c2141869219-80"></div></div></div>### Exemplo de Resposta para `/display_data/{id}`

Formato esperado retornando os detalhes do operador e da aeronave:

<div _ngcontent-ng-c2141869219="" class="code-block ng-tns-c2141869219-81 ng-animate-disabled ng-trigger ng-trigger-codeBlockRevealAnimation" data-hveid="0" data-ved="0CAAQhtANahgKEwiB9JTg8o6VAxUAAAAAHQAAAAAQwgQ" decode-data-ved="1" id="bkmrk-json-1" jslog="223238;track:impression,attention;BardVeMetadataKey:[["r_6184fd1e7f5193f1","c_c96b9eb05b5ddc8a",null,"rc_777611a3a08aabdf",null,null,"pt",null,1,null,null,1,0]]"><div _ngcontent-ng-c2141869219="" class="formatted-code-block-internal-container ng-tns-c2141869219-81"><div _ngcontent-ng-c2141869219="" class="animated-opacity ng-tns-c2141869219-81"><div _ngcontent-ng-c2141869219="" class="code-block-decoration header-formatted gds-emphasized-body-m ng-tns-c2141869219-81 ng-star-inserted"><span class="ng-tns-c2141869219-81">JSON</span><div _ngcontent-ng-c2141869219="" class="buttons ng-tns-c2141869219-81 ng-star-inserted"><button aria-label="Baixar código" class="mdc-icon-button mat-mdc-icon-button mat-mdc-button-base mat-badge mat-unthemed mat-badge-overlap mat-badge-above mat-badge-after mat-badge-small mat-badge-hidden ng-star-inserted"></button><button aria-label="Copiar o código" class="mdc-icon-button mat-mdc-icon-button mat-mdc-button-base mat-badge mat-unthemed mat-badge-overlap mat-badge-above mat-badge-after mat-badge-small mat-badge-hidden ng-star-inserted"></button></div></div></div></div></div>```
{
  "operator": {
    "id": "OP-BR-987654321",
    "location": {
      "lat": -23.1805,
      "lng": -45.8881
    },
    "altitude": {
      "altitude": 550.0,
      "altitude_type": "Takeoff"
    }
  },
  "uas": {
    "id": "UAS-XT-550",
    "eu_classification": "Class0"
  }
}
```