이 블로그 게시물에서는 프로젝트 구조 설정 및 초기 코드 생성에 중점을 두고 새 API를 구축하는 초기 단계를 자세히 설명합니다. 목표는 다양한 최신 도구를 사용하여 강력하고 테스트 가능한 API를 만드는 것입니다.
기술 스택에는 사양용 OpenAPI, 서버 생성용 oapi-codegen, 테스트용 Testify, 적용 범위 보고용 Codecov, 컨테이너화용 Docker, 데이터베이스용 PostgreSQL, ORM으로서의 GORM, 데이터베이스 마이그레이션용 Flyway, 오케스트레이션용 Kubernetes가 포함됩니다. , 코드형 인프라를 위한 Terraform, 잠재적인 웹 서버인 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!