Swagger-core: ApiModelProperty๊ฐ€ List ๋ฐ AllowableValues๋ฅผ ์ง€์›ํ•˜์ง€ ์•Š๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

์— ๋งŒ๋“  2015๋…„ 12์›” 09์ผ  ยท  4์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: swagger-api/swagger-core

๋‚ด ๋ชจ๋ธ์— ๋‹ค์Œ ์ฃผ์„์ด ์žˆ์Šต๋‹ˆ๋‹ค.

  @ApiModelProperty(value = "A list of items", allowableValues = "item1, item2, item3") 
    private List<String> itemList;

์ƒ์„ฑ๋œ swagger.json์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

        "itemList" : {
          "type" : "array",
          "description" : "A list of items",
          "items" : {
            "type" : "string"
          }
        }

allowableValues ์œผ๋กœ๋ถ€ํ„ฐ ๋ˆ„๋ฝ swagger.json .
๋˜ํ•œ array๋Š” List<String> ๋Œ€ํ•œ ์˜ฌ๋ฐ”๋ฅธ ์ถœ๋ ฅ ์œ ํ˜•์ž…๋‹ˆ๊นŒ?

๋‚ด ๊ตฌ์„ฑ

        <dependency>
            <groupId>io.swagger</groupId>
            <artifactId>swagger-annotations</artifactId>
            <version>1.5.4</version>
        </dependency>
                <plugins>
                    <plugin>
                        <groupId>com.github.kongchen</groupId>
                        <artifactId>swagger-maven-plugin</artifactId>
                        <version>3.1.1</version>
                        <executions>
                            <execution>
                                <id>swagger</id>
                                <phase>compile</phase>
                                <goals>
                                    <goal>generate</goal>
                                </goals>
                                ...                               
                            </execution>
                        </executions>
                    </plugin>

๊ฐ€์žฅ ์œ ์šฉํ•œ ๋Œ“๊ธ€

์ด ๋ฌธ์ œ๋Š” ์ด๋ฏธ ์ž‘๋™ํ•ด์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ข…๋ฃŒ๋œ ๊ฒƒ์ž…๋‹ˆ๊นŒ ์•„๋‹ˆ๋ฉด ์ˆ˜์ •๋˜์ง€ ์•Š์„ ๊ฒƒ์ด๊ธฐ ๋•Œ๋ฌธ์— ์ข…๋ฃŒ๋œ ๊ฒƒ์ž…๋‹ˆ๊นŒ?

๋น„์Šทํ•œ ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‚ด ๊ฐœ์ฒด์— ์—ด๊ฑฐํ˜• ๊ฐ’ ๋ชฉ๋ก์ด ์žˆ์ง€๋งŒ API์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๊ฐ’์„ ์ œํ•œํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค.

enum MyEnum { VAL1, VAL2, VAL3 }

์ด๊ฒƒ์€ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค:

@ApiModelProperty(allowableValues = "VAL1,VAL2")
MyEnum myenum;

์ด๊ฒƒ์€ ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค(allowableValues๋ฅผ ๋ฌด์‹œํ•˜๊ณ  ๊ฐ€๋Šฅํ•œ ๋ชจ๋“  ์—ด๊ฑฐํ˜• ๊ฐ’์„ ๋Œ€์‹  ์‚ฌ์šฉํ•จ).

@ApiModelProperty(allowableValues = "VAL1,VAL2")
List<MyEnum> mylist;

๋ชจ๋“  4 ๋Œ“๊ธ€

์˜ˆ, ํ˜„์žฌ allowableValues ๋Š” ํ”„๋ฆฌ๋ฏธํ‹ฐ๋ธŒ ๋˜๋Š” ๋ฒ”์œ„์—์„œ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. ์ด์— ๋Œ€ํ•œ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์€ ๋Œ€์‹  ์—ด๊ฑฐํ˜• ๋ชฉ๋ก์„ ์‚ฌ์šฉํ•˜๊ณ  ๊ทธ ๋ชฉ๋ก์—์„œ ํ—ˆ์šฉ ๊ฐ€๋Šฅํ•œ ๊ฐ’์„ ํŒŒ์ƒ์‹œํ‚ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์ด ๋ฌธ์ œ๋Š” ์ด๋ฏธ ์ž‘๋™ํ•ด์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ข…๋ฃŒ๋œ ๊ฒƒ์ž…๋‹ˆ๊นŒ ์•„๋‹ˆ๋ฉด ์ˆ˜์ •๋˜์ง€ ์•Š์„ ๊ฒƒ์ด๊ธฐ ๋•Œ๋ฌธ์— ์ข…๋ฃŒ๋œ ๊ฒƒ์ž…๋‹ˆ๊นŒ?

๋น„์Šทํ•œ ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‚ด ๊ฐœ์ฒด์— ์—ด๊ฑฐํ˜• ๊ฐ’ ๋ชฉ๋ก์ด ์žˆ์ง€๋งŒ API์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๊ฐ’์„ ์ œํ•œํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค.

enum MyEnum { VAL1, VAL2, VAL3 }

์ด๊ฒƒ์€ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค:

@ApiModelProperty(allowableValues = "VAL1,VAL2")
MyEnum myenum;

์ด๊ฒƒ์€ ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค(allowableValues๋ฅผ ๋ฌด์‹œํ•˜๊ณ  ๊ฐ€๋Šฅํ•œ ๋ชจ๋“  ์—ด๊ฑฐํ˜• ๊ฐ’์„ ๋Œ€์‹  ์‚ฌ์šฉํ•จ).

@ApiModelProperty(allowableValues = "VAL1,VAL2")
List<MyEnum> mylist;

ํ—ˆ์šฉ๋˜๋Š” ๊ฐ’์— ๋Œ€ํ•ด ๋‹ค๋ฅธ ์œ ํ˜•๋„ ์ง€์›ํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.

2019๋…„์—๋Š” ์—ฌ์ „ํžˆ List์—์„œ ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰