【发布时间】:2021-03-29 06:56:24
【问题描述】:
如何在 REST API 中处理分页?
public getMethodForCenter(String baseUrl, String endpoint) {
HttpURLConnection openConnection = new URL(baseUrl + endpoint).openConnection()
def token = postAuthorization(Users.username, Users.password)
openConnection.setRequestMethod("GET")
openConnection.setRequestProperty("Authorization", "Bearer " + token)
if(openConnection.getResponseCode() == 200) {
assert openConnection.getResponseCode() == 200
def responseBody = openConnection.getInputStream().getText()
def parsedJson = slurper.parseText(responseBody)
assert parsedJson.statusCode == 200
return parsedJson
} else {
assert openConnection.getResponseCode() != 200
def responseBody = openConnection.getErrorStream().getText()
def parsedJson = slurper.parseText(responseBody)
assert parsedJson.statusCode == 200
return parsedJson
}
}
我必须测试分页,但如何处理和创建分页链接?例如,我有 5 个可选字段:id、createDate、modifiedDate、Name 等。
我正在考虑使用 if/else 语句自己创建链接,但是会有太多变化,我认为这不是正确的方法。
这就是我对一个领域的意思:
添加一个值 - getMethodForCenter(String baseUrl, String endpoint, String name)
然后做一个 if/else 语句:
if(name == null) {
HttpURLConnection openConnection = new URL(baseUrl + endpoint).openConnection
} else {
HttpURLConnection openConnection = new URL(baseUrl + endpoint + "?Name=${name}"
}
**编辑:**另一种方法是添加String path并自己传递路径
【问题讨论】:
-
为什么你使用过于复杂的 java sdk 而不是 groovy 标准 http-builder-ng.github.io/http-builder-ng/asciidoc/html5 来发出请求?
-
嗯,我找到了这个方法,现在我觉得很舒服。我来看看http builder
-
但是,如何处理这个问题?分页和过滤器?
标签: java api groovy automation pagination