Get value from json post request
i have create rest api service. Trying to get value from post request:
{ "UserName": "Tom", "UserID": 123 }
here is my class
Class User.REST Extends %CSP.REST
{XData UrlMap [ XMLNamespace = "http://www.intersystems.com/urlmap" ]
{
<Routes>
<Map Prefix="/restforms" Forward="Form.REST.Main"/><Route Url="/test" Method="GET" Call="test"/>
<Route Url="/CreatePost" Method="POST" Call="post" Cors="true"/>
</Routes>
}
ClassMethod post() As %Status
{
set sc = $$$OK
set req = %request.content
set userName = req.UserName
zw userName
return $$$OK
}
getting error:
{
"errors": [
{
"code": 5002,
"domain": "%ObjectErrors",
"error": "?????? #5002: ??????: <PROPERTY DOES NOT EXIST>zpost+2^User.REST.1 *content,%CSP.Request",
"id": "CacheError",
"params": [
"<PROPERTY DOES NOT EXIST>zpost+2^User.REST.1 *content,%CSP.Request"
]
}
],
"summary": "?????? #5002: ??????: <PROPERTY DOES NOT EXIST>zpost+2^User.REST.1 *content,%CSP.Request"
}
Comments
Hi Token
I think this might be case senstivity, try using %request.Content and see if that works better?
Regards
Chris
Here's how I've been doing this:
//Read in content from the HttpRequest
set req = %request.Content.Read()
//Convert content from JSON to a dynamic object
set reqObj = {}.%FromJSON(req)
//Access data from within the new dynamic object
set userName = reqObj.%Get("UserName")Thank you!