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
	}
}