从顶点休息资源 class 获取请求 body
Getting request body from apex Rest Resource class
我在 apex 中创建了一个休息资源,我通过 GET 请求通过 body 通过 post man 传递了一个 id。然后我反序列化 body,即使我提供了 id,我也得到了一个空字符串。下面的代码。
// 其余资源代码,更多代码,但我认为这是重要的东西
String res = RestContext.Request.requestBody.toString();
if(res == ''){
response.statusCode = 400;
return;
}
HogtieDTO.getDeviceRequestInfoResponse resData = (
HogtieDTO.getDeviceRequestInfoResponse)JSON.deserialize(
RestContext.Request.requestBody.toString(),
HogtieDTO.getDeviceRequestInfoResponse.class
);
//HogtieDTO class
public with sharing class HogtieDTO {
public class getDeviceRequestInfoResponse {
public String customerId;
}
}
// post 人
我拨打这个电话后收到 401。
我可以通过参数传递它来使其工作,但我试图通过 body.
使其工作
评论多于回答,但太长了。
passing in an id through the body through post man via GET request
如果是 GET 请求 - Postman 应该忽略 body,GET 只使用 url/uri/whatever 是正式名称。确保它是一个 POST 并且你的函数也被注释为 @HttpPost @ReadOnly global static String doPost()
I get the 401
401 未授权。你确定你通过了Authorization Bearer <session id / access token goes here>
header?错误响应是 header 还是 body?您的用户个人资料是否允许访问 class 并且您使用的连接的应用程序具有 api 访问范围?
401 甚至在您的代码有机会 运行 之前就会启动,它甚至不在列表中(https://developer.salesforce.com/docs/atlas.en-us.apexcode.meta/apexcode/apex_rest_methods.htm 滚动到底部)。你确定是 运行 吗?您在调试日志中看到了什么吗?
Also, If someone could answer when you would have an Id in the path vs body that would be awesome
https://developer.salesforce.com/docs/atlas.en-us.apexcode.meta/apexcode/apex_rest_code_sample_basic.htm 包含注释为 @httpget
的示例方法,并使用 req.requestURI.substring(req.requestURI.lastIndexOf('/')+1);
从请求的 /services/apexrest/Account/001...
解析帐户 ID
我在 apex 中创建了一个休息资源,我通过 GET 请求通过 body 通过 post man 传递了一个 id。然后我反序列化 body,即使我提供了 id,我也得到了一个空字符串。下面的代码。
// 其余资源代码,更多代码,但我认为这是重要的东西
String res = RestContext.Request.requestBody.toString();
if(res == ''){
response.statusCode = 400;
return;
}
HogtieDTO.getDeviceRequestInfoResponse resData = (
HogtieDTO.getDeviceRequestInfoResponse)JSON.deserialize(
RestContext.Request.requestBody.toString(),
HogtieDTO.getDeviceRequestInfoResponse.class
);
//HogtieDTO class
public with sharing class HogtieDTO {
public class getDeviceRequestInfoResponse {
public String customerId;
}
}
// post 人
我拨打这个电话后收到 401。
我可以通过参数传递它来使其工作,但我试图通过 body.
使其工作评论多于回答,但太长了。
passing in an id through the body through post man via GET request
如果是 GET 请求 - Postman 应该忽略 body,GET 只使用 url/uri/whatever 是正式名称。确保它是一个 POST 并且你的函数也被注释为 @HttpPost @ReadOnly global static String doPost()
I get the 401
401 未授权。你确定你通过了Authorization Bearer <session id / access token goes here>
header?错误响应是 header 还是 body?您的用户个人资料是否允许访问 class 并且您使用的连接的应用程序具有 api 访问范围?
401 甚至在您的代码有机会 运行 之前就会启动,它甚至不在列表中(https://developer.salesforce.com/docs/atlas.en-us.apexcode.meta/apexcode/apex_rest_methods.htm 滚动到底部)。你确定是 运行 吗?您在调试日志中看到了什么吗?
Also, If someone could answer when you would have an Id in the path vs body that would be awesome
https://developer.salesforce.com/docs/atlas.en-us.apexcode.meta/apexcode/apex_rest_code_sample_basic.htm 包含注释为 @httpget
的示例方法,并使用 req.requestURI.substring(req.requestURI.lastIndexOf('/')+1);
/services/apexrest/Account/001...
解析帐户 ID