Table of Contents

Pesquisar reconhecer alvo| POST /v2/search

Interface de pesquisa de alvos de imagem por reconhecimento visual.

Ação

POST /v2/search

Autenticação

Requerida

Cabeçalho HTTP

Content-Type : multipart/form-data

Authorization (apenas para autenticação via Token API Key)

Parâmetros da requisição

Campo Tipo Obrigatório Descrição
image Multipart Sim String codificada em base64 do conteúdo da imagem. Suporta formatos JPG e PNG.
notracking String Não "false" retorna imagem de rastreamento (trackingImage). "true" retorna apenas a propriedade targetId detectada, sem imagem de rastreamento. Recomendado para WebAR para reduzir latência.

Exemplo de requisição com autenticação Token

curl -X POST -H "Authorization:xxx"  --form "image=@trackingImage.jpg;type=image/jpg"  --form appId=YOUR-APPID 
          https://<your-domain>-cn1.crs.easyar.com:8443/v2/search

Exemplo de requisição com autenticação por assinatura

curl -X POST --form "image=@trackingImage;type=image/jpg" 
              --form apiKey=YOUR-APIKEY  --form appId=YOUR-APPID 
              --form timestamp=1514736000000 
              --form signature=xxx 
          https://<your-domain>-cn1.crs.easyar.com:8443/v2/search
Importante
  • Utilize obrigatoriamente Client-end-URL como entrada de reconhecimento (porta 8443 para HTTPS)
  • Configure cabeçalho HTTP Connection: Keep-Alive para otimizar conexões repetidas

Campos de resposta

Campo Descrição
statusCode Código de status (0 indica autenticação válida). Referência: Códigos de status
result Mensagem de erro ou informações do alvo
timestamp Timestamp Unix (milissegundos) do servidor no momento da resposta
result.targetId ID único do alvo
result.trackingImage String base64 da imagem de rastreamento
result.name Nome do alvo
result.size Largura do alvo em cm. A altura é calculada automaticamente conforme a imagem enviada
result.meta Metadados codificados em base64 (ex: JSON convertido para base64)
result.type Valor fixo "ImageTarget"
result.active "1" ativo, "0" inativo

Códigos de resposta principais

Response HTTPCODE Status Result
OK 200 0 result: { imageBody }
NO_RESULT 404 17 result: { message: "No result: there is no matching." }
NO_TARGET 500 18 result: { message: "Target not found: there is a matching but no target, please report this issue: IMAGE-UUID" }
TIMEOUT 408 19 result: { message: "Request timeout." }
OUT_OF_LIMIT 402 21 result: { message: "You have exceeded the limit of daily scanning." }
OUT_OF_QPS 200 21 result: { message: "Exceed your QPS limitation." }
RPC_ERROR 500 20 result: { message: "Error retrieving results." }
OTHER_ERROR 501 30 result: { message: "Other error occur: details" }

Códigos de erro

Consultar Códigos de status e erros

Exemplo de requisição

POST /search/ HTTP/1.1
Host:
Date: Mon, 1 Jan 2018 00:00:00 GMT
Content-Type: application/json
{
    "image":"/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAMCAgM...",
    "timestamp": 1514736000000,
    "appKey": "test_app_key",
    "signature": "89985e2420899196db5bdf16b3c2ed0922c0c221"
}

Exemplo de resposta

  • Resposta com alvo reconhecido:

    HTTP/1.1 200 OK
    Content-Type: application/json
    {
        "statusCode": 0,
        "result": {
          "target": {
            "targetId":"e61db301-e80f-4025-b822-9a00eb48d8d2",
            "trackingImage":"/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAMCAgM...",
            "name": "easyar",
            "size": "5",
            "meta": "496fbbabc2b38ecs3460a...",
            "type": "ImageTarget",
            "modified":1514735000000
            "active":"1",
            "trackableRate": 0,
            "detectableRate": 0,
            "detectableDistinctiveness":0,
            "detectableFeatureCount": 0,
            "trackableDistinctiveness": 0,
            "trackableFeatureCount": 0,
            "trackableFeatureDistribution": 0,
            "trackablePatchContrast": 0,
            "trackablePatchAmbiguity": 0
          }
        },
        "timestamp": 1514736000000
    }

  • Resposta sem alvos correspondentes:

    HTTP/1.1 404 NOT FOUND
    Content-Type: application/json
    {
      "statusCode": 17,
      "result": {
        "message": "No result: there is no matching."
      }
    }