Developers

Datenkonnektor#

Der Datenkonnektor befüllt eine NAMES LEGAL-Website mit Daten, die bereits anderswo existieren, ohne Code auf Seiten des Website-Inhabers. Der Inhaber verbindet eine Quelle in seiner Konsole (Integrationen → Meine Daten importieren), verknüpft Spalten per Drag-and-drop mit Feldern, führt einen Probelauf durch und startet. Quellen können Dateien oder eine API sein – Ihre.

Diese Seite richtet sich an Entwickler von Anwendungen, die als Quelle fungieren möchten: was NAMES LEGAL von Ihrer API erwartet und wie Sie die Verbindung automatisch gestalten.

Wie der Konnektor Ihre API liest#

Der Website-Inhaber gibt ein:

  • die Adresse Ihrer API,
  • einen Authentifizierungsmodus und dessen Geheimnis,
  • optional, wo sich die Liste in Ihrer Antwort befindet (data.items).

NAMES LEGAL ruft daraufhin Ihre API über HTTPS mit GET auf, folgt der Paginierung und wandelt jedes Objekt in eine Zeile um. Verschachtelte Objekte werden abgeflacht (author.name), Listen einfacher Werte werden durch Kommas verbunden.

Authentifizierung#

Modus Was gesendet wird
Keiner nichts
Schlüssel im Header <Header-Name>: <key> (Standard X-API-Key)
Schlüssel in der Adresse ?<param>=<key> (Standard api_key)
Bearer-Token Authorization: Bearer <token>
Benutzername und Passwort Authorization: Basic …

Geheimnisse werden verschlüsselt gespeichert und in der Konsole nie wieder angezeigt. Geben Sie Website-Inhabern einen schreibgeschützten Schlüssel, der auf veröffentlichte Inhalte beschränkt ist: Der Konnektor liest nur.

Die Liste finden#

Wenn kein Pfad angegeben ist, nimmt der Konnektor in dieser Reihenfolge: das Array items, dann das erste in der Antwort gefundene Array von Objekten. Ein reines JSON-Array funktioniert ebenfalls.

Paginierung#

Jedes der folgenden wird automatisch verfolgt, bis zu 200 Seiten:

  • ein HTTP-Link: <…>; rel="next"-Header;
  • eine URL zur nächsten Seite im Body: next, next_url, next_page_url, links.next, meta.next, pagination.next;
  • ein Cursor im Body: next_cursor, meta.next_cursor, pagination.next_cursor — wird als ?cursor= zurückgesendet.

Stoppen Sie, indem Sie eine leere Liste oder keinen Next-Link zurückgeben.

Grenzwerte#

  • 5.000 Zeilen pro Datensatz und Synchronisierung.
  • 10 MB pro Antwort, 15 Sekunden pro Anfrage.
  • Adressen müssen öffentlich sein: private und lokale Netzwerkadressen werden abgelehnt, Weiterleitungen eingeschlossen. Bei einer Weiterleitung auf einen anderen Host wird Ihr Schlüssel nicht weitergegeben.

Das NAMES LEGAL-Feed-Format#

Stellen Sie Ihre Daten in diesem Format bereit, und der Website-Inhaber hat nichts zu verknüpfen: Jede Sammlung wird zu einem Datensatz, der bereits mit dem passenden Bereich der Website verbunden ist.

1. Ein Index#

GET https://app.example.com/api/names-legal/
{
  "names_legal_feed": 1,
  "collections": {
    "team": "https://app.example.com/api/names-legal/team/",
    "services": "https://app.example.com/api/names-legal/programmes/",
    "blog": "https://app.example.com/api/names-legal/news/"
  }
}

Sammlungsnamen sind die Bereichsschlüssel, die in der Feldreferenz unten aufgeführt sind (team, services, blog, events, faq, jobs…). URLs können relativ zum Index sein.

2. Eine Liste pro Sammlung#

{
  "items": [
    {
      "id": "T-104",
      "first_name": "Awa",
      "last_name": "Diop",
      "position": "Mathematics teacher",
      "short_bio": "Twelve years of teaching.",
      "profile_image": "https://app.example.com/media/staff/104.jpg",
      "email": "a.diop@example.com"
    }
  ],
  "next": null
}

Regeln:

  • id — eine stabile Kennung, die in jeder Zeile unterschiedlich ist. Sie sorgt dafür, dass eine bearbeitete Zeile denselben Eintrag aktualisiert, statt einen neuen zu erstellen.
  • Feldnamen entsprechen denen der Feldreferenz.
  • Übersetzte Felder haben einen Schlüssel pro Sprache: title_fr, title_en, description_de… Ein Schlüssel ohne Suffix geht an die Standardsprache der Website.
  • Bilder und Dateien sind öffentliche URLs. Sie werden einmal heruntergeladen und nur erneut heruntergeladen, wenn sich die URL ändert. Freigabelinks von Google Drive und Dropbox werden akzeptiert.
  • Kategorien werden mit Namen angegeben ("category": "Bachelor"); fehlende Kategorien werden erstellt.
  • Daten sind im Format ISO 8601. Boolesche Werte sind true/false.
  • Rich-Text-Felder akzeptieren HTML; es wird bereinigt (keine Skripte, keine Event-Handler). Klartext wird zu Absätzen.
  • Geben Sie nur zurück, was veröffentlicht werden darf: Entwürfe und private Daten sollten nicht im Feed erscheinen.

Die Website aktuell halten#

Der Website-Inhaber wählt pro Bereich:

Option Wirkung
Stündlich / täglich NAMES LEGAL liest Ihre API nach Zeitplan.
Nur auf Anfrage Eine Schaltfläche in der Konsole.
Webhook Sie rufen die Webhook-Adresse der Website nach jeder Änderung auf: Synchronisierung innerhalb einer Minute. Siehe Webhooks.

Sie wählen außerdem, was passiert, wenn sich ein Eintrag auf beiden Seiten geändert hat (Ihre Daten gewinnen, die Website gewinnt, oder nachfragen), und wenn eine Zeile aus Ihrem Feed verschwindet (auf der Website löschen, ausblenden oder behalten). Eine Synchronisierung, die einen großen Teil eines Bereichs entfernen würde, stoppt und fragt zunächst um Bestätigung.

Das Zurückschreiben in Ihre Anwendung ("meine Website → meine Quelle") ist noch nicht verfügbar: Der Konnektor liest nur.

Feldreferenz#

Wird von der Plattform selbst generiert; sie ist stets aktuell. Erforderliche Felder müssen in jeder Zeile vorhanden sein (bei einem übersetzten Feld in mindestens einer Sprache).

Team team

FeldFeldtypPflichtfeldEines pro Sprache
first_name
Vorname
text ≤ 100
last_name
Nachname
text ≤ 100
position
Position
text ≤ 150
short_bio
Kurzbiografie
longtext ≤ 300
bio
Bio
html
profile_image
Profilbild
image ≤ 100
email
E-mail
email ≤ 254
phone
Telefon
text ≤ 20
linkedin
Linkedin
url ≤ 200
website
Persönliche website
url ≤ 200
specialties
Spezialgebiete
text ≤ 200
education
Ausbildung
text ≤ 200
location
Standort
text ≤ 100
years_experience
Jahre erfahrung
int
order
Reihenfolge
int

Dienstleistungen services

FeldFeldtypPflichtfeldEines pro Sprache
title
Titel
text ≤ 100 title_fr, title_en
description
Beschreibung
longtext description_fr, description_en
icon
Symbol
text ≤ 50
category
Kategorie
category
is_featured
Hervorgehobene dienstleistung
bool
order
Reihenfolge
int

Projekte projects

FeldFeldtypPflichtfeldEines pro Sprache
title
Titel
text ≤ 150 title_fr, title_en
description
Kurzbeschreibung
longtext description_fr, description_en
detailed_description
Detaillierte beschreibung
html detailed_description_fr, detailed_description_en
category
Kategorie
category
image
Hervorgehobenes bild
image ≤ 100
client
Kunde
text ≤ 100 client_fr, client_en
project_date
Projektdatum
text ≤ 20
duration
Dauer
text ≤ 50 duration_fr, duration_en
project_url
Live-url des projekts
url ≤ 200
technologies
Technologien
text ≤ 200 technologies_fr, technologies_en
tags
Tags
text ≤ 200 tags_fr, tags_en
status
Status
choice ≤ 20
completed, in_progress, on_hold, planning
is_featured
Hervorgehobenes projekt
bool
order
Reihenfolge
int

Blog / Neuigkeiten blog

FeldFeldtypPflichtfeldEines pro Sprache
title
Titel
text ≤ 200 title_fr, title_en
excerpt
Auszug
longtext ≤ 500 excerpt_fr, excerpt_en
content
Inhalt
html content_fr, content_en
category
Kategorie
category
featured_image
Hervorgehobenes bild
image ≤ 100
published_date
Veröffentlichtes datum
datetime
status
Status
choice ≤ 20
draft, published, featured
order
Reihenfolge
int

Veranstaltungen events

FeldFeldtypPflichtfeldEines pro Sprache
title
Titel
text ≤ 200 title_fr, title_en
description
Beschreibung
html description_fr, description_en
start_date
Startdatum
datetime
end_date
Enddatum
datetime
location
Standort
text ≤ 200 location_fr, location_en
is_online
Ist online
bool
event_type
Veranstaltungstyp
choice ≤ 20
conference, workshop, webinar, seminar, training, meeting
registration_url
Registrierungs -url
url ≤ 200
meeting_url
Url treffen
url ≤ 200
featured_image
Hervorgehobenes bild
image ≤ 100
is_featured
Hervorgehoben
bool
order
Reihenfolge
int

FAQ faq

FeldFeldtypPflichtfeldEines pro Sprache
question
Frage
text ≤ 300 question_fr, question_en
answer
Antwort
html answer_fr, answer_en
category
Kategorie
category
is_featured
Hervorgehoben
bool
order
Reihenfolge
int

Stellenangebote jobs

FeldFeldtypPflichtfeldEines pro Sprache
title
Berufsbezeichnung
text ≤ 200
category
Kategorie
category
description
Stellenbeschreibung
html
requirements
Anforderungen
html
responsibilities
Verantwortlichkeiten
html
benefits
Vorteile
html
location
Standort
text ≤ 200
contract_type
Vertragsart
choice ≤ 20
full_time, part_time, contract, freelance, internship, temporary
experience_level
Erfahrungsniveau
choice ≤ 20
entry, junior, mid, senior, lead, executive
remote_option
Remote-option
choice ≤ 20
onsite, remote, hybrid
application_deadline
Application deadline
date
is_active
Aktiv
bool

Ressourcen resources

FeldFeldtypPflichtfeldEines pro Sprache
title
Titel
text ≤ 200 title_fr, title_en
description
Beschreibung
html description_fr, description_en
file
Datei
file ≤ 100
resource_type
Ressourcentyp
choice ≤ 20
guide, ebook, whitepaper, template, checklist, case_study
thumbnail
Miniaturansicht
image ≤ 100
order
Reihenfolge
int

Veröffentlichungen publications

FeldFeldtypPflichtfeldEines pro Sprache
title
Titel
text ≤ 255 title_fr, title_en
authors
Autoren
text ≤ 255 authors_fr, authors_en
year
Jahr
text ≤ 10
journal
Zeitschrift
text ≤ 255 journal_fr, journal_en
abstract
Abstrakt
html abstract_fr, abstract_en
link
Link
url ≤ 200
category
Kategorie
category
is_featured
Hervorgehobene publikation
bool
order
Reihenfolge
int

Kundenstimmen testimonials

FeldFeldtypPflichtfeldEines pro Sprache
name
Name
text ≤ 100 name_fr, name_en
position
Position
text ≤ 100 position_fr, position_en
testimonial
Zeugnis
longtext testimonial_fr, testimonial_en
rating
Bewertung
int
image
Bild
image ≤ 100
order
Reihenfolge
int

Fähigkeiten skills

FeldFeldtypPflichtfeldEines pro Sprache
name
Name
text ≤ 100 name_fr, name_en
level
Ebene
int
order
Reihenfolge
int

Kennzahlen stats

FeldFeldtypPflichtfeldEines pro Sprache
title
Titel
text ≤ 100 title_fr, title_en
value
Wert
text ≤ 20
icon
Symbol
text ≤ 50
order
Reihenfolge
int