Pular para o conteúdo

GET /v1/links/{id}

SDK · v1 · Homologação · Revisado em · Markdown

Operação pública/SDK existente, separada da Platform API administrativa. Guia funcional · Índice dos 13 endpoints · Schemas navegáveis · JSON Schema. Não envie Authorization administrativo. Tokens/capacidades transitórias dos exemplos são fictícios.

Resolver metadados públicos. Contrato público existente, separado de administração. Detecção exige opt-in; não chamar sua rota Edge interna diretamente. Capacidades e validade são revalidadas no servidor.

Base de exemplo: https://edge.agilink.invalid/functions/v1/api.

Parâmetro Local Obrigatório
id path sim
appId query sim

Sem corpo de requisição. Associações também aceitam HEAD com corpo de resposta vazio.

Janela do terminal
curl --request GET 'https://edge.agilink.invalid/functions/v1/api/v1/links/go.example.com~-a~-produto?appId=app_loja'

Resposta 200: Sucesso; exemplos fictícios. ACKs de telemetria devem ser lidos por evento.

{
"version": 1,
"link": {
"id": "go.example.com~-a~-produto",
"appId": "app_loja",
"domain": "go.example.com",
"prefix": "a",
"slug": "produto",
"appPath": "produto/123",
"title": "Produto",
"description": null,
"imageUrl": null,
"webUrl": "https://shop.example.com/produto/123",
"webOnly": false,
"parameters": {
"sku": "123"
}
}
}

Erros documentados: 400, 403, 404, 503. Erros do Worker podem ter corpo vazio. Etapas de recuperação podem responder 200 {"accepted":false}; ACK HTTP não significa conteúdo exibido. Consulte os schemas e o guia para condições, validade, retry e envelopes.

const response = await fetch("https://edge.agilink.invalid/functions/v1/api/v1/links/go.example.com~-a~-produto?appId=app_loja", { method: "GET" });
if (!response.ok) throw new Error('HTTP ' + response.status);
const result = await response.json();
// Confira accepted e o ACK de cada evento. Não registre tokens transitórios.
import json
import requests
response = requests.request("GET", "https://edge.agilink.invalid/functions/v1/api/v1/links/go.example.com~-a~-produto?appId=app_loja", timeout=30)
response.raise_for_status()
result = response.json()
# Confira accepted/ACK, sem registrar tokens transitórios.

Os schemas abaixo descrevem obrigatoriedade, tipos, defaults, enums e limites; referências apontam para components.schemas do contrato baixável. Omitir opcionais usa o comportamento do contrato; null só é aceito onde declarado. A API pública não usa os envelopes, If-Match ou Idempotency-Key administrativos. Eventos e etapas de recuperação usam seus próprios IDs, deduplicação e capacidade transitória. Não repita um resgate como se fosse leitura: consulte o estado e os limites do ciclo de recuperação. A resolução não gera clique administrativo; telemetria é client_reported. Associação nativa publicada exige verificação em aparelho. Sem paginação administrativa; requests não concedem acesso de gerenciamento.

{
"description": "Sem corpo; parâmetros na URL conforme acima."
}
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://agilink.io/contracts/native-links/v1/resolution.schema.json",
"title": "Agilink resolution v1",
"type": "object",
"required": [
"version",
"link"
],
"additionalProperties": false,
"properties": {
"version": {
"const": 1
},
"link": {
"type": "object",
"required": [
"id",
"appId",
"domain",
"prefix",
"slug",
"appPath",
"title",
"description",
"imageUrl",
"webUrl",
"webOnly",
"parameters"
],
"additionalProperties": false,
"properties": {
"id": {
"type": "string"
},
"appId": {
"type": "string"
},
"domain": {
"type": "string"
},
"prefix": {
"type": "string"
},
"slug": {
"type": "string"
},
"appPath": {
"type": [
"string",
"null"
],
"maxLength": 2048
},
"title": {
"type": [
"string",
"null"
],
"maxLength": 1000
},
"description": {
"type": [
"string",
"null"
],
"maxLength": 4000
},
"imageUrl": {
"type": [
"string",
"null"
],
"maxLength": 4096
},
"webUrl": {
"type": [
"string",
"null"
],
"maxLength": 4096
},
"webOnly": {
"type": "boolean"
},
"parameters": {
"type": "object"
}
},
"allOf": [
{
"if": {
"properties": {
"webOnly": {
"const": true
}
}
},
"then": {
"properties": {
"webUrl": {
"type": "string",
"minLength": 1
}
}
}
}
]
}
}
}

Headers: Content-Type application/json nas respostas JSON. Erros aplicáveis são os listados acima e podem ter corpo vazio; 429 exige respeitar Retry-After quando fornecido, sem tentativas ilimitadas. Não trate HTTP 200/ACK como confirmação de conteúdo exibido, instalação ou detecção certa.