протокол jsend определение чванства - PullRequest
1 голос
/ 29 марта 2020

Протокол Jsend - это простой «стандарт» того, как форматировать json ответы в REST API. https://github.com/omniti-labs/jsend

Я создаю документацию Swagger с использованием https://github.com/swaggo/swag, но у меня возникли большие проблемы при разработке способа использования декларативного формата комментариев для описания ответов Jsend.

Если бы кто-нибудь сделал это, я был бы очень признателен за пример фрагмента того, как они определили ответ jsend, используя формат декларативного комментария swag.

1 Ответ

0 голосов
/ 04 апреля 2020

Я решил эту проблему, переключившись на goswagger.io , который легче обрабатывал синтаксис. Это модели, используемые для базовых типов jsend. Для других ответов я заменил элемент Data на имя подходящей структуры, а swagger сделал все остальное.

// Success: no response data required
// swagger:response responseSuccess
type responseSuccess struct {
    // in: body
    Body struct {
        // enum: success
        Status string      `json:"status"`
        Data   interface{} `json:"data"`
    } `json:"body"`
}

// Error: Incorrect use of the API or the requested data is not available
// swagger:response responseError
type responseError struct {
    // in: body
    Body struct {
        // enum: error
        Status  string      `json:"status"`
        Data    interface{} `json:"data"`
        Message string      `json:"message"`
    } `json:"body"`
}

// Fail: Backend or system failure.
// swagger:response responseFail
type responseFail struct {
    // in: body
    Body struct {
        // enum: fail
        Status  string      `json:"status"`
        Data    interface{} `json:"data"`
        Message string      `json:"message"`
    } `json:"body"`
}
...