このブログ投稿では、プロジェクト構造の設定と初期コードの生成に焦点を当て、新しい API を構築する最初の手順について詳しく説明します。 目標は、さまざまな最新ツールを使用して、堅牢でテスト可能な API を作成することです。
テクノロジー スタックには、仕様のための OpenAPI、サーバー生成のための oapi-codegen、テストのための Testify、カバレッジ レポートのための Codecov、コンテナ化のための Docker、データベースのための PostgreSQL、ORM としての GORM、データベース移行のための Flyway、オーケストレーションのための Kubernetes が含まれます。 、コードとしてのインフラストラクチャとして Terraform、潜在的な Web サーバーとして Caddy を使用します。
API 仕様:
プロジェクトは、User
リソースの単純な OpenAPI 仕様から始まります。 User
スキーマには、id
、email
、および name
が含まれます。 id
は読み取り専用、email
は書き込み専用です。
<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>
このスキーマは、/users
で POST エンドポイントを定義するために使用され、成功した場合は 201 (作成済み) ステータス コードを返し、400 (不正なリクエスト) エラーの場合は問題の詳細 JSON オブジェクトを返します。
コード生成:
oapi-codegen
は、OpenAPI 仕様からサーバー コードを生成するために使用されます。 構成ファイル (server.config.yaml
および types.config.yaml
) は、生成されたコードをカスタマイズするために使用されます。 tools.go
ファイルは go generate
を利用してこのプロセスを自動化します。
ハンドラーの実装とテスト:
基本的なサーバー構造体が作成され、生成されたサーバー インターフェイスが実装されます。 PostUser
ハンドラーが実装されており、最初は nil
値を返します。 Testify を使用した単体テストは、予想される動作を定義するために同時に作成されます。 データベースがまだ統合されていないため、テスト応答は今のところハードコーディングされています。
今後の手順には、main.go
ファイル、Dockerfile
の作成、継続的テストのための Codecov の統合、および API の PostgreSQL データベースへの接続が含まれます。 詳細については、プロジェクト リポジトリを参照してください:https://www.php.cn/link/f72a23858b9865a40479a3ce3f16649e
以上が新しい API の構築とデプロイ (パート 1)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。