基于php的应用程序向grails插件项目发出请求

时间:2013-07-09 07:14:18

标签: web-services grails grails-plugin grails-2.0

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

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

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

非常感谢任何想法。

感谢。

2 个答案:

答案 0 :(得分:1)

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

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

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

动机是创建一个deployable组件(warearjar),它可以produce/expose您的自定义服务作为Web服务。您可以从grails应用程序获得相同的结果,而不是grails插件,这只是一个打包的zip存档。

答案 1 :(得分:0)

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

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

例如,如果您通过某个URL调用grails应用程序:product /那么您将能够在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