Pipeline de API: etiquetar tarjetas con rúbricas

Índice: Pipelines de API — índice

Objetivo: etiquetar tus tarjetas con rúbricas, crear tu propio árbol de rúbricas y explorar las rúbricas públicas.

Una rúbrica es una tarjeta (card_type: rubric). El tipo tag clasifica tarjetas; el tipo place es un nodo geográfico (rub.geo-…) y se asigna como location de una tarjeta, nunca como etiqueta. Las rúbricas forman árboles: una rúbrica contiene sus subrúbricas, en orden.

A. Explorar las rúbricas públicas

1. Raíces.

POST /v0/search/graph/keyword
{"query": "", "card_type": "rubric", "filters": {"roots_only": true}, "limit": 50}
→ {"hits": [{"card_type": "rubric", "nonce": "447697459225821184", "handle": "rub.iab", "title": "IAB Taxonomies", "kind": "tag", …},
            {"nonce": "447799256720343040", "handle": "rub.isic", "title": "International Standard Industrial Classification (ISIC Rev.4)", …}, …]}

2. Hijas.

GET /v0/graph/rubrics/@rub.iab?contained_limit=200&contained_offset=0
→ {"nonce": "447697459225821184", "kind": "tag",
   "contained": [{"card_type": "rubric", "nonce": "…", "title": "Automotive"}, …],
   "contained_next_offset": 200}

Pagina con contained_offset hasta que contained_next_offset sea null. Buscar una rúbrica por palabra: {"query": "dental", "card_type": "rubric", "filters": {"kind": "tag"}} en la misma búsqueda.

3. Tarjetas bajo una rúbrica. Busca con un filtro de rúbrica: "filters": {"rubrics": [["<rubric nonce>"]]} (listas internas O, externa Y; rubrics_not excluye).

B. Etiquetar una tarjeta

Las rúbricas son un campo de la tarjeta. Envía la lista completa al crear o en el PATCH; sustituye a la anterior. Cada rúbrica que añade la nueva lista requiere el derecho a marcar con ella (B3); las que la tarjeta ya tiene se quedan.

PATCH /v0/my/articles/470000000000000042
{"rubrics": ["<rubric nonce>", "470000000000000077"], "location": "<place nonce>"}

B2. Marcar una tarjeta: añadir y quitar en una sola llamada

Cambia algunas rúbricas de una tarjeta sin reenviar toda la lista.

PATCH /v0/my/cards/470000000000000042/rubrics
{"add": ["470000000000000081"], "remove": ["470000000000000090"]}
→ {"nonce": "470000000000000042", "card_type": "article",
   "rubrics": ["470000000000000081", "…"], "added": ["470000000000000081"],
   "removed": ["470000000000000079", "470000000000000090"],
   "transitions": [{"parent": "470000000000000078", "from": "470000000000000079", "to": "470000000000000081"}]}

Árboles de etapas. Pon exclusive_children: true en una rúbrica tuya (al crear o con PATCH) y aceptará un solo hijo a la vez en cada tarjeta: añadir un hijo reemplaza al hermano que la tarjeta tenía. Úsalo para etapas, p. ej. Nuevo → Contactado → Ganado: una llamada por movimiento, se permiten saltos. transitions lista cada movimiento por árbol (from: null: la tarjeta entró en el árbol; to: null: salió de él).

Historial. Cada marca queda registrada como un cambio: qué se añadió y qué se quitó, los movimientos de etapa, quién lo hizo y cuándo.

B3. Quién puede marcar con una rúbrica

Añadir una rúbrica a una tarjeta requiere el derecho a marcar con esa rúbrica. Quitar una rúbrica nunca lo requiere.

C. Tu propio árbol de rúbricas

1. Crear.

POST /v0/my/rubrics
Idempotency-Key: rub-1f3a…
{"title": "Wedding services", "content": "What we offer for weddings.", "language": "en",
 "parent": "470000000000000070"}
→ {"nonce": "470000000000000077", "card_type": "rubric", "kind": "tag", "visibility": "Private", …}

2. Añadir, quitar y reordenar subrúbricas.

POST   /v0/my/rubrics/{rubric}/{child rubric}   {"seqnum": 3}    → 204   (seqnum optional: default = last)
PATCH  /v0/my/rubrics/{rubric}/{child rubric}   {"seqnum": 0}    → 204   (move)
DELETE /v0/my/rubrics/{rubric}/{child rubric}                    → 204

Ambas deben ser rúbricas en las que puedas escribir, y además necesitas el derecho a marcar con la rúbrica padre (B3); se rechaza un ciclo. Las demás tarjetas no se archivan así: llevan sus rúbricas en su propio campo rubrics (B).

3. Editar, eliminar. PATCH /v0/my/rubrics/{nonce} (title, content, handle, visibility, project, …); DELETE /v0/my/rubrics/{nonce}. Las tuyas: GET /v0/my/rubrics, GET /v0/my/rubrics/{nonce}.

Detrás

Reglas (400)

Superficie de la API

Endpoint Para qué FE IA / oráculo
POST /v0/search/graph/keyword (card_type: rubric) Encontrar raíces y rúbricas sí sí
GET /v0/graph/rubrics, GET /v0/graph/rubrics/{nonce} Rúbricas públicas, las hijas de una rúbrica sí sí
rubrics, primary_rubrics, location al crear / en el PATCH de una tarjeta Etiquetar una tarjeta sí sí
POST /v0/my/rubrics, PATCH/DELETE /v0/my/rubrics/{nonce} Tus rúbricas no sí
POST/PATCH/DELETE /v0/my/rubrics/{nonce}/{child} Archivar, mover, quitar subrúbricas no sí
GET /v0/my/rubrics, GET /v0/my/rubrics/{nonce} Las tuyas no sí
PATCH /v0/my/cards/{nonce}/rubrics Añadir / quitar rúbricas en una llamada; movimientos de etapa no sí

Mentioned