Cet article de blog détaille les premières étapes de la création d'une nouvelle API, en se concentrant sur la configuration de la structure du projet et la génération du code initial. L'objectif est de créer une API robuste et testable à l'aide d'une variété d'outils modernes.
La pile technologique comprend : OpenAPI pour la spécification, oapi-codegen pour la génération de serveur, Testify pour les tests, Codecov pour les rapports de couverture, Docker pour la conteneurisation, PostgreSQL pour la base de données, GORM comme ORM, Flyway pour les migrations de bases de données, Kubernetes pour l'orchestration. , Terraform pour l'infrastructure en tant que code et Caddy comme serveur Web potentiel.
Spécification API :
Le projet commence par une simple spécification OpenAPI pour une User
ressource. Le schéma User
comprend un id
, un email
et un name
. Le id
est en lecture seule et le email
est en écriture seule.
<code>components: schemas: User: type: object properties: id: type: string example: 123 readOnly: true email: type: string example: me@example.com writeOnly: true name: type: string example: Alice</code>
Ce schéma sera utilisé pour définir un point de terminaison POST à /users
, renvoyant un code d'état 201 (Créé) en cas de succès et un objet JSON Détails du problème pour les erreurs 400 (Requête incorrecte).
Génération de code :
oapi-codegen
est utilisé pour générer le code du serveur à partir de la spécification OpenAPI. Les fichiers de configuration (server.config.yaml
et types.config.yaml
) sont utilisés pour personnaliser le code généré. Un fichier tools.go
utilise go generate
pour automatiser ce processus.
Implémentation et tests du gestionnaire :
Une structure de serveur de base est créée, implémentant l'interface serveur générée. Un gestionnaire PostUser
est implémenté, renvoyant initialement des valeurs nil
. Les tests unitaires utilisant Testify sont écrits simultanément pour définir le comportement attendu. La base de données n'étant pas encore intégrée, les réponses aux tests sont pour l'instant codées en dur.
Les étapes futures consisteront à créer le fichier main.go
, un Dockerfile
, à intégrer Codecov pour des tests continus et à connecter l'API à la base de données PostgreSQL. Le référentiel du projet est disponible pour plus de détails : https://www.php.cn/link/f72a23858b9865a40479a3ce3f16649e
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!