Listar veículos de entrega

Este documento descreve como cadastrar veículos de entrega.

Ambientes e limitações

Você pode listar veículos de entrega a partir de um servidor ou de um navegador. O Driver SDK não suporta a listagem de veículos de entrega.

A inclusão de veículos de entrega no cadastro requer amplo acesso a esses veículos e destina-se apenas a usuários confiáveis. Use os tokens Delivery Fleet Reader ou Fleet Engine Delivery Admin ao fazer solicitações de lista de veículos de entrega.

Os veículos de entrega listados têm os seguintes campos editados devido ao impacto no tamanho da resposta:

  • CurrentRouteSegment
  • RemainingVehicleJourneySegments

Uso

Você pode listar veículos por filtros de atributos e limites da área visível. Se você não especificar um filtro ou uma janela de visualização, a resposta vai incluir todos os veículos de entrega.

Listar com filtros de atributos

É possível listar veículos de entrega por filtro usando a propriedade attributes. Por exemplo, para consultar um atributo com chave my_key e valor my_value, use attributes.my_key = my_value. Para consultar vários atributos, junte consultas usando os operadores lógicos AND e OR como em attributes.key1 = value1 AND attributes.key2 = value2. Consulte AIP-160 para uma descrição completa da sintaxe de consulta de filtro. Se você combinar filtros com limites de viewport, o filtro atuará como um operador AND para o limite da viewport. Consulte Consultas de filtro de atributos de veículo para mais detalhes.

Lista com limites de visualização

É possível filtrar os veículos de entrega listados por local usando o parâmetro de solicitação viewport. O parâmetro de solicitação viewport define viewports usando duas coordenadas de limite: um par de coordenadas de latitude e longitude high (nordeste) e low (sudoeste). As solicitações são rejeitadas se contiverem uma latitude alta que seja geograficamente menor do que uma latitude baixa.

Liste as respostas

Por padrão, as listas de veículos de entrega são paginadas usando um tamanho de página razoável. Se você especificar um tamanho de página, a solicitação vai retornar apenas o número de veículos especificado pelo limite ou menos. Se o tamanho da página solicitado exceder um valor máximo interno, o máximo interno será usado. O tamanho de página padrão e máximo é de 100 veículos.

Uma lista de veículos de entrega pode incluir um token para ler a próxima página de resultados. Um token de página só está presente em uma resposta quando mais páginas de veículos de entrega estão disponíveis para recuperação. Para recuperar a próxima página de tarefas, use o token de página com uma solicitação idêntica à anterior.

Exemplos de lista de veículos

É possível usar a biblioteca Java gRPC ou REST para listar veículos de entrega em uma região específica com um determinado atributo. Uma resposta bem-sucedida ainda pode estar vazia. Quando isso acontece, significa que não há veículos com o atributo especificado na janela de visualização.

Java


  static final String PROJECT_ID = "my-delivery-co-gcp-project";

  DeliveryServiceBlockingStub deliveryService =
    DeliveryServiceGrpc.newBlockingStub(channel);

  // Tasks request
  String parent = "providers/" + PROJECT_ID;
  ListDeliveryVehiclesRequest listDeliveryVehiclesRequest =
    ListDeliveryVehiclesRequest.newBuilder()  // No need for the header
        .setParent(parent)
        .setViewport(
              Viewport.newBuilder()
                .setHigh(LatLng.newBuilder()
                    .setLatitude(37.45)
                    .setLongitude(-122.06)
                    .build())
                .setLow(LatLng.newBuilder()
                    .setLatitude(37.41)
                    .setLongitude(-122.11)
                    .build())
        .setFilter("attributes.my_key = my_value")
        .build();

  try {
    ListDeliveryVehiclesResponse listDeliveryVehiclesResponse =
        deliveryService.listDeliveryVehicles(listDeliveryVehiclesRequest);
  } catch (StatusRuntimeException e) {
    Status s = e.getStatus();
    switch (s.getCode()) {
        case NOT_FOUND:
            break;

        case PERMISSION_DENIED:
            break;
    }
    return;
  }

REST

  # HTTP request
  html GET https://fleetengine.googleapis.com/v1/providers/<project_id>/deliveryVehicles

  # Request with a filter
  # Request sets JWT, PROJECT_ID, and VEHICLE_ID in the local environment
  curl -H "Authorization: Bearer ${JWT}" \
    "https://fleetengine.googleapis.com/v1/providers/${PROJECT_ID}/deliveryVehicles?filter=attributes.my_key%20%3D%20my_value%20&viewport.high.latitude=37.45&viewport.high.longitude=-122.06&viewport.low.latitude=37.41&viewport.low.longitude=-122.11"

Se a pesquisa for bem-sucedida, o corpo da resposta vai incluir dados com esta estrutura:

  // JSON representation
  {
    "deliveryVehicles": [
      {
        object (DeliveryVehicle)
      }
    ],
    "nextPageToken": string,
    "totalSize": integer
  }

A seguir