簡體   English   中英

Spring Contracts:如何將字符串集合作為 RequestBody 發送

[英]Spring Contracts: how to send a Collection of Strings as a RequestBody

關於如何為使用 @RequestBody 注釋的方法編寫契約的問題,將字符串集合作為參數。 我有以下方法:

    @PostMapping(path = "/some/uri", produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
    @ApiOperation("GET with body")
    public Response<Boolean> someMethod(@RequestParam(value = "key") final String key,
                                        @RequestBody final Collection<String> numbers){
        return some logic;
    }

為了測試目的,我編寫了以下合同:


import org.springframework.cloud.contract.spec.Contract


Contract.make {
    description "Should return true"
    request {
        method POST()
        url("/some/uri?key=NEW_KEY")
        body'''["12345",
                "00143"]'''
    }
    response {
        status 200
        headers {header 'Content-Type': 'application/json;charset=UTF-8'}
        body '''true'''
    }

我一直收到415,測試找不到我的方法,我想我的錯誤可能在於我發送字符串集合的方式,我嘗試了一些其他選項但沒有成功。

我嘗試了上面的建議,但不幸的是它們都沒有解決我的問題。 我得到 415 的原因是,當我向請求添加正文時,也在后台對正文的內容類型進行了檢查,因此我必須在請求中明確指定正文也是 json 格式:

request {
        method POST()
        url("/some/uri?key=NEW_KEY")
        headers {header 'Content-Type': 'application/json;charset=UTF-8'}
        body'''["12345",
                "00143"]'''
    }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM