>  기사  >  백엔드 개발  >  SwaggerUI를 사용하여 Golang에서 API 온라인 문서 구현

SwaggerUI를 사용하여 Golang에서 API 온라인 문서 구현

PHPz
PHPz원래의
2023-06-03 09:31:571697검색

SwaggerUI를 사용하여 Golang에서 API 온라인 문서 구현

현대 애플리케이션 아키텍처의 출현으로 API(애플리케이션 프로그래밍 인터페이스)는 현대 웹 애플리케이션의 기본 구성 요소가 되었습니다. API 수가 계속 증가함에 따라 API 문서를 작성하고 유지하는 것이 지루한 작업이 되었습니다. 따라서 API 문서 작성 및 유지 관리 프로세스를 단순화하는 것이 매우 필요합니다. Swagger는 웹 API에 대한 강력한 문서화 도구를 제공하는 널리 사용되는 솔루션입니다. 이 기사에서는 SwaggerUI를 사용하여 Golang에서 API 온라인 문서를 구현하는 방법을 소개합니다.

Swagger 소개

Swagger는 개발자가 RESTful API를 설계, 구축, 문서화 및 테스트하는 데 도움을 줄 수 있는 오픈 소스 API 구축 도구 세트입니다. 여기에는 Swagger Editor, Swagger UI 및 Swagger Codegen과 같은 여러 도구가 포함되어 있습니다.

그 중 Swagger Editor는 개발자가 Swagger 사양을 작성하고 편집하는 데 도움을 주는 웹 브라우저 기반 편집기입니다. Swagger UI는 Swagger 사양을 API 문서로 렌더링할 수 있는 도구이며 클라이언트 및 서버 측 API를 자동으로 생성할 수 있습니다. 암호.

SwaggerUI를 사용하여 Golang에서 API 온라인 문서 구현

Golang은 높은 동시성 성능과 낮은 오버헤드라는 장점이 있습니다. 고루틴이라는 경량 스레드를 사용하여 동시성을 처리하고 자동 메모리 재활용 및 가비지 수집을 지원합니다. Golang에서는 go-swagger 라이브러리를 사용하여 API 온라인 문서를 구현할 수 있습니다.

  1. Swagger 설치

먼저 다음 명령을 통해 설치할 수 있는 Swagger를 설치해야 합니다.

$ brew tap go-swagger/go-swagger
$ brew install go-swagger
  1. Golang 프로젝트 초기화

다음으로 로컬 컴퓨터에서 Golang 프로젝트를 초기화해야 합니다. 다음 명령을 사용하여 로컬 컴퓨터에 Go-Swagger-API라는 Golang 프로젝트를 생성했습니다.

$ mkdir Go-Swagger-API 
$ cd Go-Swagger-API 
$ go mod init Go-Swagger-API 
  1. API 정의 생성

API 정의를 생성하려면 YAML 파일을 생성하고 다음에서 API 설정을 정의해야 합니다. 그것. 이 예에서는 pet.yaml이라는 파일을 생성하고 그 안에 다음 코드를 추가할 수 있습니다.

swagger: "2.0"
info:
  version: 1.0.0
  title: Petstore API 
produces:
- application/json
paths:
  /pets:
    get:
      summary: List all pets 
      responses:
        200:
          description: OK
        500:
          description: Internal Server Error
    post:
      summary: Add a new pet 
      parameters:
        - in: body
          name: body
          schema:
            "$ref": "#/definitions/pet"
          required: true
      responses:
        201:
          description: Created
        500:
          description: Internal Server Error

definitions:
  pet:
    type: object
    properties:
      id:
        type: integer
      name:
        type: string
      tag:
        type: string
  1. API 서버 프레임워크 생성

다음으로 go-swagger 도구를 사용하여 코드를 생성해야 합니다. 이전 단계에서 정의한 구성을 사용하여 자동으로 코드를 생성합니다. 터미널에 다음 명령을 입력합니다.

$ swagger generate server -A Go-Swagger-API -f pets.yaml

이 명령은 YAML 파일의 정의를 기반으로 서버 측 프레임워크를 생성합니다.

  1. API 서버 시작

다음으로 API 서버를 시작하고 제대로 작동하는지 확인해야 합니다. 터미널에 다음 명령을 입력합니다.

$ cd cmd/go-swagger-api-server/
$ go run main.go

출력은 다음과 유사해야 합니다.

Serving Go-Swagger-API at http://127.0.0.1:8080 

이제 웹 브라우저에서 다음 URL에 액세스하여 API가 작동하는지 확인할 수 있습니다. http: //127.0.0.1 :8080/pets. http://127.0.0.1:8080/pets

  1. 集成SwaggerUI

最后一步是在API服务器中集成SwaggerUI。首先,在项目的根目录下创建一个名为swagger-ui的目录,并在其中下载SwaggerUI,可以通过下面的命令来实现:

$ mkdir swagger-ui && cd swagger-ui && wget https://github.com/swagger-api/swagger-ui/archive/v3.32.3.tar.gz && tar xfz v3.32.3.tar.gz --strip-components=1 && rm v3.32.3.tar.gz

接下来,在API服务器的main.go文件中添加以下代码:

// Setup the SwaggerUI middleware
swaggerUI := http.FileServer(http.Dir("./swagger-ui/dist"))
r.PathPrefix("/docs").Handler(http.StripPrefix("/docs", swaggerUI))

此代码将SwaggerUI中的dist目录作为静态资源文件公开,用于呈现实际的SwaggerUI。

现在,可以在浏览器中访问以下URL以查看自动生成的API文档:http://localhost:8080/docs/index.html

    SwaggerUI 통합

    마지막 단계는 SwaggerUI를 API 서버에 통합하는 것입니다. 먼저 프로젝트의 루트 디렉터리에 swagger-ui라는 디렉터리를 만들고 여기에 SwaggerUI를 다운로드합니다.

    rrreee🎜 다음으로 API의 main.go 파일에 다음 코드를 추가합니다. server :🎜rrreee🎜이 코드는 SwaggerUI의 dist 디렉터리를 실제 SwaggerUI를 렌더링하기 위한 정적 리소스 파일로 노출합니다. 🎜🎜이제 브라우저에서 다음 URL을 방문하여 자동으로 생성된 API 문서를 볼 수 있습니다: http://localhost:8080/docs/index.html. 🎜🎜결론🎜🎜SwaggerUI를 사용하여 Golang에서 API 온라인 문서를 구현하는 것은 어렵지 않습니다. 이는 API 문서 작성 및 유지 관리에 큰 편의를 제공합니다. Swagger를 사용하면 API에 대한 문서가 자동으로 생성될 수 있으며 백엔드 엔지니어와 프런트엔드 엔지니어가 API 인터페이스를 빠르게 이해할 수 있습니다. 이를 통해 API 개발, 테스트 및 문서화 프로세스가 크게 단순화되어 개발자가 비즈니스 로직 구현에 더 집중할 수 있습니다. 🎜

위 내용은 SwaggerUI를 사용하여 Golang에서 API 온라인 문서 구현의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.