2013-07-09 54 views
0

我有grails插件項目,我需要將其轉換爲webservice,以便我的php代碼可以向新創建的webservice發出請求。基於php的應用程序向grails插件項目提出請求

總之,我需要公開我的grails插件項目,以便我的基於PHP的應用程序可以提出請求。

有沒有任何支持打電話從我的基於PHP的應用程序grails插件項目。

任何想法非常感謝。

謝謝。

+0

你怎麼知道你的插件託管在哪裏?還是你只在你的項目上談論私人插件? –

+0

這是一個由我創建的自定義插件項目。 –

回答

1

插件可以開發和測試獨立,但爲了使用它們它必須被安裝在主機的應用程序。

AFAIU,你有一個自定義的插件,它有一些XYZ服務,你想作爲一個web服務公開。爲此,您必須執行以下步驟:

  • 創建一個grails應用程序。 (不是插件)
  • 在應用程序中安裝插件。 (通過定義該應用的BuildConfig.groovy中的插件)
  • 將服務作爲REST風格的web服務公開的一種方法是遵循@ Saurabh的方法。
  • 另一種方法是在插件中使用cxf plugin公開插件中的服務類。 (未經測試,但您可以嘗試如果您可以在不使用REST URL映射的情況下實現所需內容)。

動機是創建一個deployable組件(warearjar)可能produce/expose您的自定義服務作爲Web服務。您可以從Grails應用程序中獲得相同的結果,而不是Grails插件,它只是一個打包的zip存檔。

0

例如,您可以嘗試使用grails Web服務; REST可以使用,你可以通過URL調用你的grails應用程序,並且可以通過POST,GET和它們在grails控制器上處理它們的參數。

你可以調用URL並處理URL映射上的url參數:

例如,如果您的應用程序調用你的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

+0

您可以將插件打包爲「war」並進行部署,以便我可以使用此示例REST服務? – dmahapatro

相關問題