spring boot swagger,如何编写可选参数和过滤器 url /{storeId}?product={productId}&expand=grocery,electronics,clothing"

spring boot swagger, how to write optional parameter and filter url /{storeId}?product={productId}&expand=grocery,electronics,clothing"

嗨,我正在 spring 引导项目中大摇大摆。我正在为端点方法做大摇大摆的定义。 鉴于 GET /{storeId}?product={productId}&expand=grocery,electronics,clothing 我想为此写 swagger url。我该怎么办?

首先,在{storeId}之后,?意思是可选的,对吧? 那么我可以为 product={productId} 部分做 @RequestParam(required = false)String productId? 吗?

其次,url中的&是什么意思? 我不确定,但那是过滤?

我的尝试是

  @GetMapping("/storeId"})
public ResponseEntity<Product> getProduct(
@PathVariable("storeId")String storeId,
@RequestParam(required = false) String productId, 
@RequestParam(required = false, name = "expand") Set<ProductEnum> products)
{//some code}

ProductEnum 只是杂货、电子产品、服装值。

还有一个问题,

@GetMapping("/{storeId"})

@GetMapping("/{storeId}?product={productId}&expand=grocery,electronics,clothing")

哪一个是正确的?

谢谢

@GetMapping("/{storeId}")是正确的方法。

对于你来说,swagger可以是这样的-

paths:
  /{storeId}:
    get:
      summary: Get a store by ID
      parameters:
        - in: query
          name: productId
          schema:
            type: string
          required: false
        - in: query
          name: expand
          schema:
            type: array
            items:
              type: string
          required: false

你可以参考这个Describing Parameters