L'API Ginto (GraphQL)

Ultimo aggiornamento:
25/10/2025
API
app
Web
Prima di iniziare

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.

nota

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ì.

Consiglio professionale

Usa il nostro spazio di lavoro di test Ginto in Postman per testare le varie domande.

Ecco cosa troverai in questa guida:

Domande frequenti

estremità

istruzioni
0
  1. 1
  2. 2
  3. 3
  4. 4
  5. 5

Punto finale per l'ambiente di produzione.

POST api.ginto.guide/graphql

Endpoint dell'ambiente di test:

POST api.dev.ginto.guide/graphql

introduzione

istruzioni
0
  1. 1
  2. 2
  3. 3
  4. 4
  5. 5

su

  • Integrazione FIRST
  • Implementazione dei livelli di qualità
  • Accordo con Marc sulla valutazione dell'accessibilità (PI-Icons vs GINTO logic vs HotellerieSuisse e altri criteri)

autorizzazione

istruzioni
1
  1. 1
  2. 2
  3. 3
  4. 4
  5. 5

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.

schema di dati

istruzioni
3
  1. 1
  2. 2
  3. 3
  4. 4
  5. 5

Divisione in pagine (impaginazione)

istruzioni
4
  1. 1
  2. 2
  3. 3
  4. 4
  5. 5

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

Imposta lingua

istruzioni
5
  1. 1
  2. 2
  3. 3
  4. 4
  5. 5

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

istruzioni
6
  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
{
    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)
                }
            }
        }
    }
}

Ottieni l'ingresso individuale tramite ID

istruzioni
7
  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
{
	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
  	}
  }
}

filtraggio

istruzioni
9
  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
{
  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

istruzioni
12
  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
{
    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:

Categoria e gruppo di categorie

istruzioni
13
  1. 1
  2. 2
  3. 3
  4. 4
  5. 5

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

Domande frequenti

Al momento non ci sono domande frequenti su questa guida.

Potrebbe interessarti anche questo