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
Libérer: 2025-01-08 06:21:41
original
304 Les gens l'ont consulté

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>
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal