estremità
Ginto fornisce due endpoint GraphQL. Uno per l'ambiente di produzione e uno per l'ambiente di test.
Punto finale per l'ambiente di produzione.
POST api.ginto.guide/graphql
Endpoint dell'ambiente di test:
POST api.dev.ginto.guide/graphql
L'API è protetta e può essere richiamata solo se la richiesta viene autenticata tramite una chiave API. Questo deve essere specificato come token al portatore nell'intestazione dell'autorizzazione ad ogni richiesta. Contatta support@ginto.guide per ottenere una chiave API per l'autorizzazione API.
Se disponi già di un'interfaccia con una delle nostre organizzazioni partner, ad esempio AccommodataHub di Hotellerie Suisse, puoi anche ottenere alcune informazioni da lì.
Usa il nostro spazio di lavoro di test Ginto in Postman per testare le varie domande.
Ginto fornisce due endpoint GraphQL. Uno per l'ambiente di produzione e uno per l'ambiente di test.
Punto finale per l'ambiente di produzione.
POST api.ginto.guide/graphql
Endpoint dell'ambiente di test:
POST api.dev.ginto.guide/graphql
La struttura dei dati è spiegata qui: in che modo i dati provenienti da stanze, percorsi, icone, valutazioni, ecc. devono essere utilizzati e integrati dall'API?
su

L'API è protetta. L'accesso è possibile solo se la richiesta è autenticata tramite una chiave API.
Ad ogni richiesta, la chiave API deve essere Token al portatore Nell'intestazione dell'autorizzazione è fornito quanto segue:
Authorization: Bearer {token}La chiave API può essere richiesta inviando un breve messaggio a support@ginto.guide.

Postman è un noto strumento per la creazione e l'utilizzo di API. È un buon modo per esplorare e testare l'API Ginto-GraphQL.
.png)
Il postino può usato online e scaricato gratuitamente diventare. Qui puoi trovare un istruzioni dettagliate per la creazione di query GraphQL.

GraphQL fornisce uno schema tipizzato per i dati. Grazie alla funzione di introspezione, la documentazione è integrata direttamente nello schema. Ciò fornisce informazioni sulle interrogazioni supportate. Le librerie client sono disponibili per quasi tutti i linguaggi di programmazione pertinenti. GraphQL può essere utilizzato con una normale richiesta HTTP. Gli strumenti di sviluppo API come Postman supportano GraphQL immediatamente.

Per ragioni di prestazioni e scalabilità, il numero di voci restituite per richiesta è limitato. Esiste un meccanismo di impaginazione che consente di passare al gruppo successivo di voci tramite l'impaginazione tramite cursore.
Il concetto si basa su connessioni e bordi, che sono quasi standard per l'impaginazione in GraphQL. Per le query che consentono l'impaginazione, gli argomenti possono Prima e Dopo oltre a una richiesta Informazioni sulla pagina essere definito. Il primo argomento definisce quanti elementi devono essere restituiti con la richiesta. Per motivi di prestazioni, questo valore non deve superare 50. Muori Informazioni sulla pagina contiene un Cursore finalechi il cursore Definito l'ultimo elemento della pagina. Questo Cursore finale Può quindi per Dopol'argomento della richiesta successiva può essere utilizzato per aggiungere i seguenti elementi dopo Cursore finale ricevere. I parametri per il controllo della numerazione delle pagine sono documentati nel diagramma.
Per la prima pagina, no Dopol'argomento può essere impostato. La seguente query restituisce le prime 50 voci insieme a Informazioni sulla pagina Indietro che il Cursore finale la pagina contiene.
{
allEntries(first: 50) {
totalCount
pageInfo {
hasNextPage
endCursor
}
edges {
node {
id
name
}
}
}
}
Per richiedere le prossime 50 iscrizioni, utilizziamo il Cursore finale la risposta precedente e impostala come segue per l'argomento dopo della richiesta successiva:
{
allEntries(first: 50, after: "NTA") {
totalCount
pageInfo {
hasNextPage
endCursor
}
edges {
node {
id
name
}
}
}
}
È possibile impostare la lingua predefinita dei dati restituiti. Le lingue tedesco, francese, italiano e inglese sono attualmente supportate.
La lingua predefinita dei dati restituiti può essere impostata impostando l'intestazione HTTP Lingua di accettazione essere selezionato. Attualmente, le opzioni sono de (tedesco), en (inglese), fr (francese) e it (italiano) supporti.
Qui puoi trovare maggiori informazioni su Intestazione HTTP Accept-Language.
Per i testi disponibili in diverse lingue, è possibile definire anche una lingua specifica utilizzando il campo Argomento.

Recupera tutte le voci.
{
allEntries {
totalCount
pageInfo {
hasNextPage
endCursor
}
edges {
node {
id
sourceIds(sourceKey: "zuerst") // at the moment only available for business users
name
position {
street
housenumber
postcode
city
lat
lng
}
externalRatings(sourceKey: "zuerst") {
iconUrl
descriptionDE: description(locale: DE)
descriptionFR: description(locale: FR)
descriptionIT: description(locale: IT)
descriptionEN: description(locale: EN)
grade
}
publication {
iconUrl
iconTextDE: iconText(locale: DE)
iconTextFR: iconText(locale: FR)
iconTextIT: iconText(locale: IT)
iconTextEN: iconText(locale: EN)
linkUrl
linkTextDE: linkText(locale: DE)
linkTextFR: linkText(locale: FR)
linkTextIT: linkText(locale: IT)
linkTextEN: linkText(locale: EN)
}
}
}
}
}
Recupera una voce specifica in base all'ID.
{
entry(entryId: "ee659e74-295f-4285-8c3d-d90f232efa44") {
entryId
name
externalRatings(sourceKey: "zuerst") {
iconUrl
description
grade
}
publication {
linkUrl
linkText
}
licenseInfo {
license
attribution
isOpenData
}
manualWheelchairAccessibility: accessibility(ratingProfileId: "Z2lkOi8vcmFpbHMtYXBwL1JhdGluZ1Byb2ZpbGVzOjpSYXRpbmdQcm9maWxlLzc4") {
grade
conformance
}
powerWheelchairAccessibility: accessibility(ratingProfileId: "Z2lkOi8vcmFpbHMtYXBwL1JhdGluZ1Byb2ZpbGVzOjpSYXRpbmdQcm9maWxlLzc5") {
grade
conformance
}
pushchairAccessibility: accessibility(ratingProfileId: "Z2lkOi8vcmFpbHMtYXBwL1JhdGluZ1Byb2ZpbGVzOjpSYXRpbmdQcm9maWxlLzgw") {
grade
conformance
}
}
}
L'API consente di interrogare le voci utilizzando filtri definiti. I singoli filtri di input possono essere configurati dinamicamente per ogni account utente. Può essere filtrato per categorie, fonti, livelli di qualità, codici postali, confini geografici, profili di valutazione o elenchi aggiunti manualmente.
{
entriesByFilter(filterId: "Z2lkOi8vcmFpbHMtYXBwL0dyb3VwaW5nOjpFbnRyeUdyb3VwL2U2Y2I1ZTU4LTE0MDQtNDk5Mi05YjY1LTlkNjc1MTJmZTRiMg", first: 50, after: "NTA") {
totalCount
pageInfo {
hasNextPage
endCursor
}
edges {
node {
id
sourceIds(sourceKey: "parks.swiss") // at the moment only available for business users
name
externalRatings(sourceKey: "zuerst") {
iconUrl
description
grade
}
publication {
iconUrl
iconText
linkUrl
linkText
}
licenseInfo {
license
attribution
isOpenData
}
wheelchairAccessibility: accessibility(ratingProfileId: "Z2lkOi8vcmFpbHMtYXBwL1JhdGluZ1Byb2ZpbGVzOjpSYXRpbmdQcm9maWxlLzc4") {
grade
conformance
}
}
}
}
}
L'esempio seguente uente recupera tutti i filtri di input per i quali un utente è autorizzato. L'ID può essere utilizzato quindi essere per l'interrogazione EntriesByFilter.
{
entryFilters {
id
name
createdAt
updatedAt
categoryKeys
sources
qualityLevels
postcodes
}
}

Recupera le voci per coordinate e nomi.
{
entriesBySearch(lat: 47.4224806, lng: 9.3760095, query: "palace", within: 5) {
totalCount
pageInfo {
hasNextPage
endCursor
}
edges {
node {
id
name
position {
street
housenumber
postcode
city
lat
lng
}
publication {
iconUrl
iconTextDE: iconText(locale: DE)
iconTextFR: iconText(locale: FR)
iconTextIT: iconText(locale: IT)
iconTextEN: iconText(locale: EN)
linkUrl
linkTextDE: linkText(locale: DE)
linkTextFR: linkText(locale: FR)
linkTextIT: linkText(locale: IT)
linkTextEN: linkText(locale: EN)
}
}
}
}
}Per richiedere le successive 50 voci, prendiamo l'endcursor della risposta precedente e lo impostiamo come argomento after della richiesta successiva come segue:

Tutte le voci vengono assegnate alla categoria (ad esempio «Hotel») e al gruppo di categorie di livello superiore (ad esempio «Alloggio»).
Questo ti dà una panoramica di tutte le categorie e gruppi di categorie disponibili:
AllEntries {
availableCategories {
groupKey
groupName
key
name
}
}
Ecco come si ottengono la categoria e il gruppo di categorie di una voce specifica:
AllEntries {
entry(entryId: "8f62bea4-b778-46e2-ac49-dda6a4ef2680") {
name
categories {
groupKey
groupName
key
name
}
}