GP Coder

Trang chia sẻ kiến thức lập trình Java

  • Java Core
    • Basic Java
    • OOP
    • Exception Handling
    • Multi-Thread
    • Java I/O
    • Networking
    • Reflection
    • Collection
    • Java 8
  • Design pattern
    • Creational Pattern
    • Structuaral Pattern
    • Behavior Pattern
  • Web Service
    • SOAP
    • REST
  • JPA
  • Java library
    • Report
    • Json
    • Unit Test
  • Message Queue
    • ActiveMQ
    • RabbitMQ
  • All
Trang chủ Java Webservice REST Cài đặt và sử dụng Swagger UI

Cài đặt và sử dụng Swagger UI

Đăng vào 07/08/2019 . Được đăng bởi GP Coder . 10316 Lượt xem . Toàn màn hình

Trong bài trước tôi đã giới thiệu với các bạn một số kiến thức cơ bản về Swagger. Trong bài này, tôi sẽ hướng dẫn các bạn cách cài đặt và sử dụng Swagger UI tool.

Nội dung

  • 1 Tải thư viện Swagger UI
  • 2 Deploy Swagger API lên server
  • 3 Tạo 1 file config để cấu hình API docs của project
  • 4 Trỏ URL đến file config
  • 5 Viết file swagger config hiệu quả với $ref

Tải thư viện Swagger UI

Các bạn download thư viện Swagger UI từ github repository tại link sau: https://github.com/swagger-api/swagger-ui.

Trong repository trên, bao gồm 3 npm module khác nhau:

  • swagger-ui : là một npm module có thể được sử dụng trong single-page application (SPA), nó tương thích với webpack để quản lý các dependency.
  • swagger-ui-dist : module này bao gồm tất cả mọi thứ cần thiết để sử dụng Swagger UI ở phía server side hoặc SPA mà không cần cài đặt thêm các npm module dependencies.
  • swagger-ui-react : cung cấp các React components được sử dụng cho các React application.

Sau khi download xong, bạn tìm đến thư mục swagger-ui/dist mở file index.html sẽ show lên một trang demo tương tự link http://petstore.swagger.io/ như sau:

Như bạn thấy, trong textbox Explore chính là đường linh tới nội dung đặc tả các api.

Deploy Swagger API lên server

Bạn có thể deploy Swagger lên bất kỳ server nào, đơn giản chỉ việc copy tất cả file trong thư mục dist lên server.

Tạo 1 file config để cấu hình API docs của project

Chúng ta sẽ sử dụng editor tool online của Swagger tại link sau https://editor.swagger.io/ để tạo file config cho document API.

Sau đây mình sẽ tạo document cho API với cấu trúc như sau:

# swagger.yaml
swagger: "2.0"
info:
  description: "Swagger UI demo by gpcoder.com"
  version: "1.0.0"
  title: "Swagger UI Demo"
  termsOfService: "http://swagger.io/terms/"
  contact:
    email: "contact@gpcoder.com"
  license:
    name: "Apache 2.0"
    url: "http://www.apache.org/licenses/LICENSE-2.0.html"
schemes:
  - http
basePath: "/api/v1"
tags:
- name: "Users"
  description: "Everything about user"
paths:
  /users:
    post:
      tags:
      - "Users"
      summary: "Add new user"
      consumes:
      - "application/json"
      - "application/xml"
      produces:
      - "application/json"
      - "application/xml"
      parameters:
      - in: "body"
        name: "data"
        description: "New user info"
        schema:
          type: "object"
          properties:
            name:
              type: "string"
              example: "User 1"
            password:
              type: "string"
              example: "12345678"
      responses:
        200:
          description: "Create user success"
          schema:
            type: "object"
            properties:
              name:
                type: "string"
                example: "User 1"
        405:
          description: "Invalid input"

Các key trong file config mình đã mô tả rõ ở bài viết trước, các bạn có thể xem lại tại link sau: https://gpcoder.com/5967-gioi-thieu-swagger-cong-cu-document-cho-restfull-apis/

Lưu nội dung file trên với tên swagger.yaml tại thư mục swagger-ui/dist.

  • Trên menu File của https://editor.swagger.io/ -> chọn Save as YAML hoặc chọn Convert and save as JSON.

Trỏ URL đến file config

Để sử dụng swagger, trong file dist/index.html cần phải trỏ URL đến file swagger đã tạo ở trên.

Tìm đến đoạn js cuối file, và đổi url: “http://petstore.swagger.io/v2/swagger.json” thành URL trỏ tới file swagger.yaml đã tạo ở trên.

Giả sử chúng ta đã deploy swagger lên server ở địa chỉ http://localhost:8012/swagger-ui/ và file swagger.yaml chúng ta đặt cùng thư mục với file index.html. Chúng ta sẽ sửa lại nội URL trên như sau:

http://localhost:8012/swagger-ui/swagger.yaml

Chúng ta có kết quả như sau:

Swagger hỗ trợ cả YAML và JSON. Các bạn có thể thử đổi URL đến JSON để kiểm tra kết quả.

Viết file swagger config hiệu quả với $ref

Chúng ta có thể tiếp tục thêm tất cả các API vào paths trong file swagger.yaml để hoàn thành document API cho project của mình.

Tuy nhiên có một vấn đề phát sinh là khi project càng phình to, càng nhiều API thì file swagger.yaml của lớn. Khi cần thêm mới hay chỉnh sửa sẽ rất khó khăn.

Để giải quyết vấn đề này chúng ta sẽ chia nhỏ file swagger.yaml ra thành nhiều file và sử dụng $ref trong swagger.yaml để trỏ tới những file mà ta vừa tách ra.

Giả sử chúng ta tái cấu trúc thư mục của mình như sau:

|__swagger-ui/
|__swagger.yaml

Bây giờ, mình sẽ tách file swagger.yaml ở trên ra theo cấu trúc thư mục như sau:

|__swagger-ui/
|__swagger.yaml
|__components/
|____users.yaml

Nội dung các file config bây giờ đổi lại như sau:

swagger.yaml


# swagger.yaml
swagger: "2.0"
info:
  description: "Swagger UI demo by gpcoder.com"
  version: "1.0.0"
  title: "Swagger UI Demo"
  termsOfService: "http://swagger.io/terms/"
  contact:
    email: "contact@gpcoder.com"
  license:
    name: "Apache 2.0"
    url: "http://www.apache.org/licenses/LICENSE-2.0.html"
schemes:
  - http
basePath: "/api/v1"
tags:
- name: "Users"
  description: "Everything about user"
paths:
  /users:
    $ref: components/users.yaml

components/users.yaml


# components/users.yaml
post:
  tags:
  - "Users"
  summary: "Add new user"
  consumes:
  - "application/json"
  - "application/xml"
  produces:
  - "application/json"
  - "application/xml"
  parameters:
  - in: "body"
    name: "data"
    description: "New user info"
    schema:
      type: "object"
      properties:
        name:
          type: "string"
          example: "User 1"
        password:
          type: "string"
          example: "12345678"
  responses:
    200:
      description: "Create user success"
      schema:
        type: "object"
        properties:
          name:
            type: "string"
            example: "User 1"
    405:
      description: "Invalid input"

Như bạn thấy, nội dung file config của chúng ta đơn giản hơn rất nhiều. Chúng ta có thể dễ dàng thay đổi  hay thêm mới document cho API.

Trên đây là hướng dẫn cơ bản về cài đặt và sử dụng Swagger UI tool. Trong bài viết tiếp theo, chúng ta sẽ thực hiện tạo nội dung đặc tả cho api từ code có sẵn để hiện lên Swagger UI.

Tài liệu tham khảo:

  • https://github.com/swagger-api/swagger-ui
  • https://editor.swagger.io
5.0
03
Nếu bạn thấy hay thì hãy chia sẻ bài viết cho mọi người nhé! Và Donate tác giả

Shares

Chuyên mục: Java Webservice, REST Được gắn thẻ: REST, Swagger, Webservice

Giới thiệu Swagger – Công cụ document cho RESTfull APIs
Sử dụng Swagger UI trong jersey REST WS project

Có thể bạn muốn xem:

  • Sử dụng Swagger UI trong jersey REST WS project (15/08/2019)
  • REST Web service: Basic Authentication trong Jersey 2.x (03/07/2019)
  • Giới thiệu Castle Mock – Mock REST APIs và SOAP web-services (05/09/2019)
  • SOAP Web service: Upload và Download file sử dụng MTOM trong JAX-WS (06/06/2019)
  • REST Web service: HTTP Status Code và xử lý ngoại lệ RESTful web service với Jersey 2.x (21/06/2019)

Bình luận

bình luận

Tìm kiếm

Bài viết mới

  • Clean code 13/01/2024
  • Giới thiệu CloudAMQP – Một RabbitMQ server trên Cloud 02/10/2020
  • Kết nối RabbitMQ sử dụng Web STOMP Plugin 19/06/2020
  • Sử dụng publisher confirm trong RabbitMQ 16/06/2020
  • Sử dụng Dead Letter Exchange trong RabbitMQ 13/06/2020

Xem nhiều

  • Hướng dẫn Java Design Pattern – Factory Method (97377 lượt xem)
  • Hướng dẫn Java Design Pattern – Singleton (97022 lượt xem)
  • Giới thiệu Design Patterns (86690 lượt xem)
  • Lập trình đa luồng trong Java (Java Multi-threading) (85523 lượt xem)
  • Giới thiệu về Stream API trong Java 8 (83065 lượt xem)

Nội dung bài viết

  • 1 Tải thư viện Swagger UI
  • 2 Deploy Swagger API lên server
  • 3 Tạo 1 file config để cấu hình API docs của project
  • 4 Trỏ URL đến file config
  • 5 Viết file swagger config hiệu quả với $ref

Lưu trữ

Thẻ đánh dấu

Annotation Authentication Basic Java Behavior Pattern Collection Creational Design Pattern Cấu trúc điều khiển Database Dependency Injection Design pattern Eclipse Exception Executor Service Google Guice Gson Hibernate How to Interceptor IO Jackson Java 8 Java Core JDBC JDK Jersey JMS JPA json JUnit JWT Message Queue Mockito Multithreading OOP PowerMockito RabbitMQ Reflection Report REST SOAP Structuaral Pattern Swagger Thread Pool Unit Test Webservice

Liên kết

  • Clean Code
  • JavaTpoint
  • Refactoring Guru
  • Source Making
  • TutorialsPoint
  • W3Schools Online Web Tutorials

Giới thiệu

GP Coder là trang web cá nhân, được thành lập với mục đích lưu trữ, chia sẽ kiến thức đã học và làm việc của tôi. Các bài viết trên trang này chủ yếu về ngôn ngữ Java và các công nghệ có liên quan đến Java như: Spring, JSF, Web Services, Unit Test, Hibernate, SQL, ...
Hi vọng góp được chút ít công sức cho sự phát triển cộng đồng Coder Việt.

Donate tác giả

Tìm kiếm các bài viết của GP Coder với Google Search

Liên hệ

Các bạn có thể liên hệ với tôi thông qua:
  • Trang liên hệ
  • Linkedin: gpcoder
  • Email: contact@gpcoder.com
  • Skype: ptgiang56it

Follow me

Copyright 2025 © GP Coder · All Rights Reserved · Giới thiệu · Chính sách · Điều khoản · Liên hệ ·

Share

Blogger
Delicious
Digg
Email
Facebook
Facebook messenger
Flipboard
Google
Hacker News
Line
LinkedIn
Mastodon
Mix
Odnoklassniki
PDF
Pinterest
Pocket
Print
Reddit
Renren
Short link
SMS
Skype
Telegram
Tumblr
Twitter
VKontakte
wechat
Weibo
WhatsApp
X
Xing
Yahoo! Mail

Copy short link

Copy link