Maison >développement back-end >Golang >Création et déploiement d'une nouvelle API (partie 1)

Création et déploiement d'une nouvelle API (partie 1)

DDD
DDDoriginal
2025-01-08 06:21:41307parcourir

Building and Deploying a New API (Part 1)

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn