L'API Ginto (GraphQL)

Dernière mise à jour : 
5/8/2025
API
appli
Web
Avant de commencer

L'API est protégée et ne peut être invoquée que si la demande est authentifiée à l'aide d'une clé API. Cela doit être spécifié en tant que jeton porteur dans l'en-tête d'autorisation à chaque demande. Contactez support@ginto.guide pour obtenir une clé d'API pour l'autorisation de l'API.

note

Si vous disposez déjà d'une interface avec l'une de nos organisations partenaires, par exemple l'AccommoDataHub d'Hotellerie Suisse, vous pouvez également y obtenir des informations.

Conseil professionnel

Utilisez notre espace de travail de test Ginto dans Postman pour tester les différentes requêtes.

C'est ce que vous trouverez dans ce guide :

Questions fréquemment posées

points finaux

#
0

Point final de l'environnement de production.

POST api.ginto.guide/graphql

Point final de l'environnement de test :

POST api.dev.ginto.guide/graphql

autorisation

#
1

Pour chaque demande, la clé API doit être Jeton Bearer Les informations suivantes sont fournies dans l'en-tête Authorization :

Authorization: Bearer {token}

La clé API peut être demandée en envoyant un court message à support@ginto.guide.

schéma de données

#
3

Division en pages (pagination)

#
4

Le concept est basé sur les connexions et les arêtes, qui constituent un quasi-standard pour la pagination dans GraphQL. Pour les requêtes qui autorisent la pagination, les arguments peuvent D'abord et Après ainsi qu'une demande Informations sur la page être défini. Le premier argument définit le nombre d'éléments qui doivent être renvoyés avec la demande. Pour des raisons de performance, cette valeur ne doit pas dépasser 50. Mourez Informations sur la page contient un Curseur de finqui curseur Défini le dernier élément de la page. Ce Curseur de fin Peut alors pour Aprèsl'argument de la requête suivante peut être utilisé pour ajouter les éléments suivants après Curseur de fin recevoir. Les paramètres de contrôle de la numérotation des pages sont documentés dans le diagramme.

Pour la première page, non Aprèsl'argument peut être défini. La requête suivante renvoie les 50 premières entrées ainsi qu'un Informations sur la page Souligne que le Curseur de fin la page contient.

{
    allEntries(first: 50) {
        totalCount
        pageInfo {
            hasNextPage
            endCursor
        }
        edges {
            node {
                id
                name
            }
        }
    }
}

Pour demander les 50 prochaines entrées, nous utilisons Curseur de fin la réponse précédente et définissez-la comme suit pour l'argument after de la requête suivante :

{
    allEntries(first: 50, after: "NTA") {
        totalCount
        pageInfo {
            hasNextPage
            endCursor
        }
        edges {
            node {
                id
                name
            }
        }
    }
}

Définir la langue

#
5

La langue par défaut des données renvoyées peut être définie en définissant l'en-tête HTTP Langue d'acceptation être sélectionné. Actuellement, les options sont de (allemand), en (anglais), fr (français) et it (italien) supports.

Vous trouverez ici plus d'informations sur En-tête HTTP Accept-Language.

Pour les textes disponibles en plusieurs langues, une langue spécifique peut également être définie à l'aide du champ Argument.

Récupérez toutes les entrées

#
6
{
    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)
                }
            }
        }
    }
}

Obtenez une entrée individuelle par pièce d'identité

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

Récupérez les entrées par coordonnées et par noms

#
8
{
    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)
                }
            }
        }
    }
}

Pour demander les 50 entrées suivantes, nous prenons le endCursor de la réponse précédente et le définissons comme argument after de la requête suivante comme suit :

filtrage

#
9
{
  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'exemple suivant récupère tous les filtres d'entrée pour lesquels un utilisateur est autorisé. L'ID peut ensuite être utilisé pour la requête EntriesByFilter.

{ 
	entryFilters {
    		id
    		name
    		createdAt
    		updatedAt
    		categoryKeys
    		sources
    		qualityLevels
    		postcodes
    }
 }‍

Obtenez une liste de tous les profils de besoins

#
11
{
	ratingProfiles {
    id
    name
  }
}

Autre

Questions fréquemment posées

Il n'existe actuellement aucune question fréquemment posée à propos de ce guide.

Cela pourrait également vous intéresser