【问题标题】:Grails RESTFUL web service apiGrails RESTFUL Web 服务 API
【发布时间】:2023-04-06 00:19:01
【问题描述】:

我目前正在开发一个 web 应用程序,它应该对现有的 web 服务 api 进行 restful 服务调用。

我拥有的是基本 URL 和 API 名称。

对我如何开始工作有任何帮助吗? 我想我需要对我拥有的基本 url 使用 httpbuilder,然后是 /api 名称。但是如果它工作,我如何在 grails 上测试它?

当我将基本 url 粘贴到浏览器上时,它确实返回了一些 xml 信息,所以我需要在 grails 上执行此操作。

当我通过浏览器粘贴 url 时的 XML 响应

<ns1:createNewUserResponse>
<userId>21</userId>
</ns1:createNewUserResponse>

所以我需要能够通过我的网络应用程序 (grails) 获得此响应,而不是将其粘贴到浏览器上。

编辑* 这是一个很好的例子,我觉得很有用

@Grab(group='org.codehaus.groovy.modules.http-builder', module='http-builder', version='0.5.0-RC2' )
import groovyx.net.http.*
import static groovyx.net.http.ContentType.*
import static groovyx.net.http.Method.*

def http = new HTTPBuilder( 'http://ajax.googleapis.com' )

// perform a GET request, expecting JSON response data
http.request( GET, JSON ) {
  uri.path = '/ajax/services/search/web'
  uri.query = [ v:'1.0', q: 'Calvin and Hobbes' ]

  headers.'User-Agent' = 'Mozilla/5.0 Ubuntu/8.10 Firefox/3.0.4'

  // response handler for a success response code:
  response.success = { resp, json ->
    println resp.statusLine

    // parse the JSON response object:
    json.responseData.results.each {
      println "  ${it.titleNoFormatting} : ${it.visibleUrl}"
    }
  }

  // handler for any failure status code:
  response.failure = { resp ->
    println "Unexpected error: ${resp.statusLine.statusCode} : ${resp.statusLine.reasonPhrase}"
  }
}

但我不了解查询部分,如何根据需要更改它? 我拥有的 URL 包含用户名和密码的凭据,响应应返回一个 securityToken,我需要将其从结果中取出。任何帮助将不胜感激!

【问题讨论】:

  • 这个 XML 看起来更像 SOAP。

标签: web-services api rest grails


【解决方案1】:

您可以从groovy-wslite 开始,它提供 SOAP 和 REST Web 服务客户端。

【讨论】:

    【解决方案2】:

    要调用 resfull 服务,请查看 Groovy HttpBuidler - http://groovy.codehaus.org/HTTP+Builder

    【讨论】:

    • 谢谢,我觉得这很有帮助,但您介意解释一下吗?因为我不知道如何根据需要更改它。尤其是我认为关键的 uri.query 部分?
    • 您需要帮助哪一部分? uri.query 定义将被传递的查询参数。例如,在上面的示例中,您当然会有请求:/ajax/services/search/web?v=1.0&q="Calvin and Hobbes" url 编码。那将是发送到端点的请求。 response.success 块定义了成功时会发生什么(来自端点的 200 范围响应), response.failure 定义了当服务器响应失败时要做什么。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-18
    相关资源
    最近更新 更多