Accès à l'API

Dernière mise à jour :
October 22, 2024
Téléphone intelligent (Android)
Téléphone intelligent (iOS)
Application Web
dorsal
API
Vous exploitez une plateforme de données numériques et souhaitez établir une interface technique avec ginto ? ginto poursuit une stratégie de données ouvertes et propose une API GraphQL gratuite pour l'importation de données.
remarque

Ce guide n'est disponible qu'en anglais.

Avant de commencer

Contactez info@ginto.guide pour obtenir une clé d'API pour l'autorisation de l'API. L'API est protégée et n'est accessible que lorsque la demande est authentifiée à l'aide d'une clé API. La clé API doit être fournie avec chaque demande en tant que jeton porteur dans l'en-tête Authorization.

Astuce de pro

Vue d'ensemble

La plateforme ginto fournit un API GraphQL Point de terminaison pour interroger et accéder aux données d'accessibilité.

Ginto peut configurer des filtres de saisie dynamiques individuels pour chaque compte professionnel en fonction d'un ou de plusieurs des filtres de données suivants :

    • Catégories
    • Sources
    • Niveaux de qualité
    • Codes postaux
    • Frontières géographiques
    • Profils de notation
    • Entrées ajoutées manuellement

L'API fournit des requêtes pour obtenir toutes les entrées ou les entrées de l'un des filtres définis.

Utilisation

points finaux

POST api.dev.ginto.guide/graphql

Environnement de test

POST api.ginto.guide/graphql

Environnement de production

complot

GraphQL fournit un schéma typé pour les données. Grâce à ses Fonction d'introspection La documentation est intégrée au schéma lui-même et fournit des informations sur les requêtes qu'il prend en charge. Il existe des bibliothèques clientes pour presque tous les langages de programmation pertinents. De plus, il est possible de l'utiliser avec une requête HTTP normale.

Les outils de développement d'API tels que Postman fournissent un support GraphQL prêt à l'emploi, y compris la saisie automatique des requêtes.

Pagination

Pour des raisons de performances et d'évolutivité, le nombre d'entrées renvoyées par demande est limité. Un mécanisme de pagination est en place qui permet de passer au lot d'entrées suivant via une pagination à l'aide du curseur. Le concept est basé sur Connexions et arêtes Ce qui est un quasi-standard dans GraphQL pour la pagination.

Pour les requêtes qui fournissent la pagination des arguments D'abord et Après Peut être défini ainsi qu'une PageInfo demandée.

Le D'abord L'argument définit le nombre d'éléments qui doivent être renvoyés avec la demande. Pour des raisons de performance, cette valeur ne peut pas être supérieure à 50.

Le Informations sur la page contient à Curseur de fin Qui définit le curseur du dernier élément de la page. Ce Curseur de fin Peut ensuite être utilisé pour Après Argument de la requête suivante pour obtenir les éléments suivants après le EndCursor.

Les paramètres permettant de contrôler la pagination sont documentés dans le schéma.

Exemple de pagination

Pour la première page, aucun argument après ne doit être défini. La requête suivante renvoie les 50 premières entrées ainsi qu'un PageInfo qui contient le EndCursor de la page.

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

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 :

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

Langue

La langue par défaut des données renvoyées peut être sélectionnée en réglant Langue d'acceptation en-têtes HTTP. Les options actuellement prises en charge sont de, fr, fr ou il .

https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Accept-Language

Pour les textes disponibles en plusieurs langues, il est également possible de définir une langue spécifique via un argument de champ.

Autorisation

Contacter info@ginto.guide pour obtenir une clé d'API pour l'autorisation de l'API.

L'API est protégée et n'est accessible que lorsque la demande est authentifiée à l'aide d'une clé API. La clé API doit être fournie avec chaque demande en tant que Jeton Bearer Dans l'en-tête Autorisation :

Authorization: Bearer {token}

Filtrage

Todo

Rechercher

Todo

Exemples de requêtes

Récupère une entrée spécifique par identifiant

{
	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ère toutes les entrées

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

Rechercher des entrées par coordonnées et par nom

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

Récupère toutes les entrées d'un filtre spécifique

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

Récupère tous les filtres d'entrée

Récupère tous les filtres de saisie pour lesquels l'utilisateur est autorisé. L'identifiant peut ensuite être utilisé pour la requête EntriesByFilter.

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

Récupère tous les profils de notation disponibles

{
	ratingProfiles {
    id
    name
  }
}

Cela pourrait également vous intéresser