Collegamento — proponi v1
Propone un nuovo collegamento federato tra due risorse. Il collegamento viene creato con stato=1 (Proposta) e deve essere approvato manualmente dalla piattaforma destinataria tramite la dashboard o l'API collegamento_approva.
Endpoint
POST
/api/v1/collegamento_proponi
Autenticazione
Autenticazione: x-api-key
Ogni richiesta deve includere la chiave API nell'header HTTP X-API-Key.
X-API-Key: <api_key>
Se la chiave è assente o non valida l'API risponde con HTTP 401.
Parametri
| Parametro | Tipo | Obbligatorio | Descrizione |
|---|---|---|---|
| app_a | string | Obbligatorio | Identificatore della piattaforma proponente. Deve corrispondere al permalink della piattaforma autenticata. |
| stringa_id_a | string | Obbligatorio | Tipo risorsa A (da piattaforme_risorse.stringa_id). |
| id_a | integer | Obbligatorio | ID risorsa A nella piattaforma A. |
| app_b | string | Obbligatorio | Identificatore della piattaforma destinataria. |
| stringa_id_b | string | Obbligatorio | Tipo risorsa B. |
| id_b | integer | Obbligatorio | ID risorsa B nella piattaforma B. |
| tipo | string | Opzionale | Tipo di collegamento (es. localizza, illustra, variante, panorama). |
| rel_tipo | integer | Opzionale | Direzionalità: 0=Simmetrico (default), 1=A→B, 2=B→A, 3=Corrispondente moderno, 4=Variante. |
| nota | string | Opzionale | Nota pubblica visibile agli utenti finali. |
| nota_interna | string | Opzionale | Nota interna per i redattori (non esposta nelle API pubbliche). |
Note
- app_a deve corrispondere al permalink della piattaforma autenticata: non è possibile proporre collegamenti a nome di un'altra piattaforma.
- Viene rifiutato con 409 se esiste già un collegamento equivalente (stesso A↔B) con stato ≠ Rifiutata.
- Dopo la proposta, la piattaforma destinataria riceve una notifica nel proprio pannello di redazione (GET /api/v1/notifiche).
- Il collegamento diventa visibile pubblicamente solo dopo l'approvazione (stato=2).
Esempio richiesta
POST https://lexiper.it/api/v1/collegamento_proponi
X-API-Key: {api_key_inbound}
Content-Type: application/x-www-form-urlencoded
app_a=verga&stringa_id_a=luogo&id_a=7&app_b=lexiper&stringa_id_b=luogo&id_b=42&tipo=localizza&rel_tipo=1
Esempio risposta
{
"status": "success",
"data": {
"id": 16,
"stato": 1,
"msg": "Collegamento proposto. In attesa di approvazione."
}
}
Errore 401
HTTP Status: 401
Autenticazione fallita