2017-07-11 4 views
0

J'écris un simple service web RESTful (cfc) dans ColdFusion et je veux passer une chaîne JSON au même service. Quelque chose comme ceci:Comment transmettre une chaîne JSON dans mon service Web ColdFusion et renvoyer un message de réussite/d'échec?

J'ai écrit quelque chose comme ci-dessous:

{ 
"CustomerID": 100, 
"UserName": "test", 
"Password": "xxxxx", 
} 

De plus, je veux retourner un message succès/échec après validation. Une idée comment devrais-je y parvenir?

<cfcomponent rest="true" restpath="/folder">  

<cfscript> 
    record=deserializeJSON(
'{ 
"CustomerID": 100, 
"UserName": "aimsweb", 
"Password": "xxxxx", 
}' 
); 

</cfscript> 


<cffunction name="UserDetails" returnType="JSON" access="remote" HttpMethod="GET"> 

<cfargument name="Username" type="string" required="Yes"> 
<cfargument name="Password" type="string" required="Yes"> 
<cfargument name="CustomerID" type="string" required="Yes"> 

<cfset Form.CustomerID = arguments.CustomerID> 
<cfset Form.Username = arguments.Username> 
<cfset Form.Password = Hash(arguments.Password)> 


<cfquery name="AW1Users" datasource="#request.app.dsn#"> 
     SELECT * FROM tableName where UserName='xxxx' 
</cfquery> 


    <cfif AW1Users.RecordCount> 
      <cfthrow errorcode="200"     
        detail="Success" 
        message="Success" 
        type="Application"> 

    <cfelseif AW1Users.CustomerID NEQ form.CustomerID> 
      <cfthrow errorcode="400"     
        detail="Customer Id doesn't exist" 
        message="Customer Id doesn't exist" 
        type="Application">     
    </cfif> 

    <cfreturn AW1Users> 
</cffunction> 
</cfcomponent> 

Répondre

2

Vous pouvez renvoyer cfheader dans un service Web reposant. par exemple

Non autorisé:

<cfheader statusCode = "401" statusText = "unauthorized">

OU

<cfheader statusCode = "401" statusText = "Customer Id doesn't exist">

autorisé:

<cfheader statusCode = "200" statusText = "Authorized">

OU

<cfheader statusCode = "200" statusText = "Success">

url Utile pour coldfusion webservice repos:

http://www.adobe.com/devnet/coldfusion/articles/restful-web-services.html

JSON:

<cfquery datasource="xxx" name="qGetRecords"> 
     select userId, login, email from users limit 0,3 
    </cfquery> 

    <cfset dataset = [] /> 

    <cfloop query="qGetRecords"> 
     <cfset record = {} /> 
     <cfset record["one"] = qGetRecords.userId /> 
     <cfset record["two"] = qGetRecords.login /> 
     <cfset record["three"] = qGetRecords.email /> 
     <cfset ArrayAppend(dataset, record) /> 
    </cfloop> 

<!--- You can return this JSON --> 
    <cfoutput> 
     <p>#SerializeJSON(qGetRecords)#</p> 
     <p>#SerializeJSON(dataset)#</p> 
    </cfoutput> 

espère que cela aidera

+0

Merci !! J'apprécie. – Vasu

+0

Mais aucune idée comment dois-je passer le JSON à ce service Web? – Vasu

+0

vérifier la réponse mise à jour .. espérons que cela aidera –