2015-02-09 18 views
5

Tôi đang sử dụng swagger-springmvcswagger-codegen để tạo thư viện máy khách Java cho một dịch vụ web RESTful. Tôi đã viết phần mở rộng của riêng tôi của BasicJavaGenerator (xem bên dưới) để ghi đè lên tên gói và có thể tạo thành công các tệp thư viện ứng dụng khách. Các tập tin "chính" được tạo ra là:Làm cách nào để thay đổi tên API trong lớp được tạo bởi swagger-codegen

swagger-codegen/generated-code/java/pom.xml 
swagger-codegen/generated-code/java/src/main/java/com/example/ApiApi.java 
swagger-codegen/generated-code/java/src/main/java/com/example/model/*.java 

Những gì tôi không thể tìm thấy là làm thế nào để thiết lập tên của API của tôi để có được những bộ tạo mã để đổi tên ApiApi.java để MyProjectApi.java (ví dụ) như có vẻ được thực hiện trong các mẫu được bao gồm trong cùng với cá chép mã. Tôi đã thử nhìn vào mã máy phát điện mã để ghi đè tên api, và cũng đã cố gắng tìm kiếm cả hai tại json spec swagger và swagger springmvc chức năng để một tùy chọn để thiết lập tên.

Các máy phát điện mã:

package com.wordnik.swagger.codegen 

import com.wordnik.swagger.codegen.BasicJavaGenerator 

object MyJavaGenerator extends BasicJavaGenerator { 
    def main(args: Array[String]) = generateClient(args) 

    // api invoker package 
    override def invokerPackage = Some("com.example.api") 

    // package for models 
    override def modelPackage = Some("com.example.api.model") 

    // package for api classes 
    override def apiPackage = Some("com.example.api") 
} 

Trả lời

8

bạn có thể ghi đè lên hành vi này như vậy:

override def toApiName(name: String) = "MyProject" + name 

như bạn thấy phù hợp. Xin lưu ý rằng bạn nên xem xét nâng cấp lên 2.1.0-THÔNG SỐ CHUNG, mà sống trong https://github.com/swagger-api/swagger-codegen/tree/develop_2.0

+0

Cảm ơn rất nhiều , hoạt động hoàn hảo! Tôi sẽ cung cấp cho các 2.1.0-SNAPSHOT một đi ngay bây giờ. – trf

3

Ngoài các câu trả lời được chấp nhận - để có được giá trị vốn hóa đúng, bạn có thể sử dụng:

override def toApiName(name: String) = "MyProject" + name.capitalize 
Các vấn đề liên quan