Sau khi các bạn định nghĩa API specs sử dụng OpenAPI, để implement các API này sử dụng ngôn ngữ lập trình mà các bạn đang làm việc, các bạn có thể sử dụng công cụ Open API Generator CLI ở địa chỉ https://github.com/OpenAPITools/openapi-generator để generate source code dành cho ngôn ngữ đó. Việc còn lại của chúng ta chỉ là thêm code để handle business logic cho những API này. Trong bài viết này, mình sẽ hướng dẫn các bạn cách cài đặt công cụ OpenAPI Generator CLI này và thử sử dụng nó để generate code cho Spring framework sử dụng một API specs ví dụ, các bạn nhé!
Cài đặt
Đầu tiên, công cụ này viết bằng Java nên các bạn hãy cài đặt Java trên máy của các bạn trước nhé.
Để cài đặt OpenAPI Generator CLI, các bạn hãy đi đến Maven Repository của nó ở địa chỉ https://repo1.maven.org/maven2/org/openapitools/openapi-generator-cli/, tìm phiên bản mới nhất của nó. Tại thời điểm mình viết bài viết này thì phiên bản mới nhất của OpenAPI Generator CLI là 7.15.0.
Sau đó thì download tập tin .jar về các bạn nhé!
Sau khi download về, ở thư mục chứa tập tin download, các bạn có thể kiểm tra version của OpenAPI Generator CLI sử dụng command java như sau:
1 |
java -jar <path_to_openapi_generator_cli_jar_file> version |
Ví dụ mình chạy command này như sau:
1 |
java -jar openapi-generator-cli.jar version |
Ở đây do mình đã remove version trong tập tin jar nên trong command các bạn ko thấy version thôi nha các bạn!
Kết quả:
Như vậy là chúng ta đã cài đặt thành công OpenAPI Generator rồi đó các bạn!
Bây giờ mình sẽ thử sử dụng command “generate” của OpenAPI Generator CLI để generate source code xem sao các bạn nhé!
Generate source code
Cú pháp của command này như sau:
1 |
java -jar <path_to_openapi_generator_cli_jar_file> generate -i <path_to_openapi_spec> -g <generator_name> -o <output_directory> |
Tham số “-i” dùng để khai báo đường dẫn tới tập tin API specs.
Tham số “-g” dùng để định nghĩa tên generator mà các bạn muốn sử dụng để generate source code. Tên generator sẽ định nghĩa library hay framework mà OpenAPI Generator CLI sử dụng để generate source code. OpenAPI Generator CLI hỗ trợ rất nhiều ngôn ngữ lập trình khác nhau như C, C++, các Java framework,… Và nó cũng hỗ trợ generate source code cho server side và client side đó các bạn! Chi tiết danh sách các generator mà OpenAPI Generator CLI hỗ trợ, các bạn có thể xem chi tiết ở đây https://openapi-generator.tech/docs/generators/.
Tham số “-o” dùng để định nghĩa thư mục sẽ chứa các source code sẽ được generate nha các bạn.
Để làm ví dụ, mình sẽ sử dụng 1 API specs mà mình đã định nghĩa ở GitHub của mình ở đây https://github.com/khanhnguyenj/student-management-openapi-specs.
Mình đã clone repo này về local, bây giờ mình sẽ sử dụng command sau để generate source code, như sau:
1 |
java -jar openapi-generator-cli.jar generate -i "/Users/khanhnguyenj/Documents/code/student-management-openapi-specs/api.yml" -g spring -o "/Users/khanhnguyenj/Documents/code/student-management-openapi-specs/generated/spring" |
Như các bạn thấy, mình sẽ sử dụng tên generator là “spring” để generate source code cho Spring framework.
Kết quả khi mình chạy command trên như sau:
Như vậy là chúng ta đã generate thành công source code rồi đó các bạn.
Mở project đã được generate, các bạn sẽ thấy kết quả tương tự như mình như sau: