0

我有 grails 插件项目,我需要将其转换为 web 服务,以便我的 php 代码可以向新创建的 web 服务发出请求。

简而言之,我需要公开我的 grails 插件项目,以便我的基于 php 的应用程序可以向它发出请求。

是否支持从我的基于 php 的应用程序调用 grails 插件项目。

非常感谢任何想法。

谢谢。

4

2 回答 2

1

插件可以独立开发和测试,但为了使用它们,它必须安装在主机应用程序中。

AFAIU,你有一个自定义插件,它有一些你想作为 web 服务公开的 XYZ 服务。为此,您必须执行以下步骤:

  • 创建一个 grails 应用程序。(不是插件)
  • 在应用程序中安装您的插件。(通过在应用程序中定义插件BuildConfig.groovy
  • 将服务公开为 RESTful Web 服务的一种方法是遵循 @Saurabh 的方法。
  • 另一种方法是在插件中使用cxf 插件在插件中公开服务类。(未经测试,但您可以尝试在不使用 REST url 映射的情况下实现所需的功能)。

Motive 是创建一个deployable组件(war, ear, jar),它可以将produce/expose您的自定义服务作为 Web 服务。您可以通过 grails 应用程序实现与 grails 插件相同的功能,而 grails 插件只不过是一个打包的zip存档。

于 2013-07-09T13:44:05.770 回答
0

例如,您可以尝试 grails Web 服务;可以使用 REST,您可以通过 url 调用您的 grails 应用程序,并可以通过 POST、GET 将参数传递给它并在 grails 控制器上处理它们

您可以调用 URL 并处理 URL 映射上的 url 参数:

例如,如果您通过某个 URL:product/ 调用您的 grails 应用程序,那么您将能够将 grails 应用程序上的请求处理为:

"/product/$id"(controller: "product", parseRequest: true) {
            action = [GET: "show", PUT: "update", DELETE: "delete", POST: "save"]

在您的控制器中,您可以解析请求,例如:

if( request.method == "GET" ){
        println( "GET REQUEST RECEIVED" )
            <......Some Code........>
        render resultList as JSON
    }else if( request.method == "POST" ){
        println( "POST REQUEST RECEIVED" )
            <......Some Code........>
        render resultList as JSON
    }
        }

请求和响应可以用 xml 或 JSON 格式处理,看看: http: //grails.org/doc/2.2.1/guide/webServices.html#REST

于 2013-07-09T07:28:25.610 回答