2016-04-06 18 views
0

coldfusionで新しいレストサービスを作成しようとしていますが、値がない場合はパラメータを渡さないようにしたいと考えていましたが、私の機能。ColdFusion 11でのRESTサービス

RESTサービスCFC:

<cfcomponent rest="true" restpath="/crudService">  
     <cffunction name="getHandlerJSON" access="remote" httpmethod="GET" restpath="{customerID}" returntype="query" produces="application/json"> 
      <cfargument name="customerID" required="false" restargsource="Path" type="numeric" default=-1/> 

       <cfset myQuery = queryNew("id,name","Integer,varchar",[[1, "Sagar"], [2, "Ganatra"]])> 
       <cfquery dbtype="query" name="resultQuery"> 
        select * from myQuery where 1=1 
        <cfif arguments.customerID neq -1> 
         and id = #arguments.customerID# 
        </cfif> 
       </cfquery> 

      <cfreturn resultQuery> 

     </cffunction> 
    </cfcomponent> 

そして、これは私がそれを呼び出しています方法です:

<cfhttp url="http://dev.test.com/rest/api/crudService/2" result="restResult" method="GET" /> 

<cfdump var="#deserializeJSON(restResult.filecontent,false)#"> 

と結果:

{"COLUMNS":["ID","NAME"],"DATA":[[2,"Ganatra"]]} 

私が何をしたいがためにありますIDなしで私のサービスを呼び出すことができ、すべての結果を戻すことができます。このために別の関数を作成する必要がありますか?ベストプラクティスは何ですか?

答えて

0

PATH経由でRESTサービスのCFCにパラメータを渡すときには、それらのパラメータがURLに存在している必要があります。もしそうでなければ、CFが見ている経路が正しくない。

すべての結果を返すには別の関数が必要です...または、1000000のような膨大な数値を渡します。