亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何在 spring 控制器中使用枚舉作為參數,該控制器使用“spring”

如何在 spring 控制器中使用枚舉作為參數,該控制器使用“spring”

長風秋雁 2023-06-04 17:37:29
假設我有一個用枚舉模式定義的參數:paths:  /echo:    get:      parameters:      - name: someEnum        in: query        required: true        schema:          type: string          enum: [A, B, C]      responses:        200:          description: Success          content:            text/plain:              schema:                type: stringSwagger codegen 為語言生成以下 Java 接口spring:    @ApiOperation(value = "", nickname = "echoGet", notes = "", response = String.class, tags={  })    @ApiResponses(value = {         @ApiResponse(code = 200, message = "Success", response = String.class) })    @RequestMapping(value = "/echo",        produces = { "text/plain" },         method = RequestMethod.GET)    default ResponseEntity<String> echoGet(@NotNull @ApiParam(value = "", required = true, allowableValues = "A, B, C") @Valid @RequestParam(value = "someEnum", required = true) String someEnum) {        if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) {        } else {            log.warn("ObjectMapper or HttpServletRequest not configured in default EchoApi interface so no example is generated");        }        return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED);    }someEnum生成接口的類型是字符串。如何用具有“A”、“B”、“C”值的 Java 枚舉替換它?
查看完整描述

2 回答

?
絕地無雙

TA貢獻1946條經驗 獲得超4個贊

將命名類型添加到模式并使用它:


paths:

  /echo:

    get:

      parameters:

        - name: someEnum

          in: query

          required: true

          schema:

            $ref: '#/components/schemas/MyEnum'

      responses:

        200:

          description: Success

          content:

            text/plain:

              schema:

                type: string

components:

  schemas:

    MyEnum:

      type: string

      enum: [A,B,C]


查看完整回答
反對 回復 2023-06-04
?
LEATH

TA貢獻1936條經驗 獲得超7個贊

在部分中定義您的枚舉架構components/schemas,并$ref從參數定義中定義它,如下所示。在這種情況下,Swagger Codegen 會將枚舉生成為實際的 Java 枚舉。


openapi: 3.0.0

...


paths:

  /echo:

    get:

      parameters:

      - name: someEnum

        in: query

        required: true

        schema:

          $ref: '#/components/schemas/MyEnum'

      ...


components:

  schemas:

    MyEnum:

      type: string

      enum: [A, B, C]


查看完整回答
反對 回復 2023-06-04
  • 2 回答
  • 0 關注
  • 204 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號