Contribuer
Maintenir un fournisseur, ou apporter son API
Aucune équipe ne suit seule toutes les API. Chaque fournisseur est un petit paquet à part, sous le contrat d’une famille ; il vit mieux avec un mainteneur nommé, et avec l’entreprise qui tient l’API pour le relire.
Pour les développeurs
Un fournisseur remplit le contrat d’une famille pour un service, et rien d’autre.
- Partir du modèleomni-provider-template porte un squelette par famille ;
bin/init <famille> <service>remplit les noms, et sa suite est verte avant la première ligne. - Passer la suite de conformité de la familleChaque cœur livre sa suite en trait PHPUnit (
<Cœur>\Testing). Le fournisseur y est monté sur des réponses enregistrées (MockHttpClient) : la suite ne touche jamais au réseau. - Prouver qu’il tourne hors de tout cadre
Tests/BareTest.phpcharge chaque classe avec les seules dépendances du paquet ; aucun cadre dansrequire, un client HTTP toujours accepté de l’extérieur. - Garder l’intégration continue au vertLes workflows du squelette appellent glitchr-studio/ci, épinglé à un commit : les tests à chaque push, une version avec ses notes, l’empreinte de son archive et une attestation de provenance à chaque étiquette.
- Le proposerOuvrir un ticket « Fournisseur » : la famille, le service, sa politique d’usage, ce qui peut s’essayer en vrai. Le nom s’y arrête, puis le dépôt est créé sous glitchr-omnisense.
Qui maintient quoi
- Chaque dépôt de fournisseur vit dans l’organisation glitchr-omnisense, sous licence MIT, pour survivre à la disponibilité d’une seule personne.
- Chaque fournisseur nomme son mainteneur dans son README et dans CODEOWNERS ; l’entreprise qui tient l’API peut en être co-mainteneuse.
- Une modification est fusionnée après la relecture du mainteneur de la famille et une intégration continue verte qui passe la suite de conformité ; une modification du contrat d’une famille demande son mainteneur, jamais un fournisseur seul.
- La section « Verified, and not » du README dit ce qui a été essayé contre le vrai service, et quand ; le catalogue le montre tel qu’il est écrit.
- Un mainteneur qui se retire le dit dans un ticket ; le fournisseur passe en « mainteneur recherché » jusqu’à ce que quelqu’un le reprenne.
Pour les entreprises qui tiennent les API
Une intégration relue par l’éditeur de l’API est une intégration à laquelle ses utilisateurs peuvent se fier. Trois façons d’y entrer, d’une heure à un rôle suivi.
- Relire son fournisseurLire le paquet qui appelle son API : les points d’accès, les erreurs qu’il traduit, les limites qu’il respecte. Un ticket ou une demande de fusion suffit.
- Déclarer sa politique d’usage en donnéesChaque fournisseur porte sa politique en données : l’accès qu’il demande, une offre gratuite, l’usage commercial sur cette offre, le crédit à montrer (
Policy: auth, free, commercial, attribution, credit, terms). Une application la lit avant d’appeler l’API, et montre le crédit comme il est demandé. - Le co-maintenirÊtre nommé dans son CODEOWNERS : les changements de l’API arrivent dans le paquet quand ils sortent, pas quand un utilisateur les remarque.
- Être référencéL’API a sa carte au catalogue, avec sa politique et un lien vers ses conditions ; un fournisseur relu le dit.
policy:
auth: key # none | key | oauth | contract
free: true
commercial: yes # yes | no | conditional | unclear
attribution: required
credit: 'Data from Example'
terms: 'https://example.org/api-terms'
Recherchés
43 fournisseurs cherchent un mainteneur : de nouvelles familles, et des services qui manquent aux familles publiées.
Nouvelles familles
-
omniphoto Recherchée
Trouver une photo pour illustrer une page, avec le crédit qu’elle demande.
UnsplashPexelsPixabayOpenverseWikimedia Commons
-
omnijob Recherchée
Lire les offres d’emploi des sites d’emploi.
USAJOBSAdzunaArbeitnowFrance Travail
-
omnisport Recherchée
Lire le calendrier, les résultats et le classement d’une compétition.
football-data.orgTheSportsDBOpenF1
-
omnitravel Réservée
Lire horaires, itinéraires et temps réel, en train, en avion ou en transports urbains.
GTFS and GTFS-RealtimeNavitiaTransitous
-
omnistay Réservée
Trouver des séjours et leurs tarifs, et les réserver.
Amadeus HotelsA site’s own listings
-
omnilang Réservée
Traduire un texte ou une page, quel que soit le moteur.
DeepL APIGoogle Cloud TranslationAzure AI TranslatorAmazon TranslateLibreTranslate
-
omnical Réservée
Lire et écrire un agenda, et connaître les jours fériés.
Google CalendarMicrosoft Graph calendarCalDAV (iCloud, Fastmail, Nextcloud…)OpenHolidays APINager.Date
Dans les familles publiées
-
INSEE (BDM, SDMX)EurostatECB Data Portal
-
OpenWeatherMET Norway (api.met.no)Météo-France
-
Stripe IdentityVeriffEntrust Identity Verification (Onfido)DossierFacile
-
PennylaneXeroQuickBooks OnlineOdoo
-
Open Food Facts
-
MastodonBluesky
-
MusicBrainzPodcast Index
-
MeilisearchElasticsearch / OpenSearch
Prendre contact
Tout passe par le dépôt du site sur GitHub, en public : un modèle de ticket par type de demande.
- Maintenir un fournisseurUne famille, un service, une proposition de le maintenir.Ouvrir un ticket
- Une entreprise d’APIUne relecture, une politique d’usage à déclarer, un co-mainteneur à nommer.Ouvrir un ticket
- Un défaut dans un paquetLes tickets de son propre dépôt : chaque fiche de paquet y renvoie.github.com/glitchr-omnisense