salesforce rest interface get and post
salesforce 提供了标准的rest和soap接口供外部程序调用,但是往往项目中拿到的需求点是需要我们定制化进行开发的。本文简单的介绍一下,rest接口在salesforce中的使用的两种方式。
前提:当我们使用rest的集成方式时,首先需要能成功的与salesforce平台进行会话,一般我们有两种处理方式:
- 将接口放到站点上进行暴露
- 需要连接SF的系统先获取SF的Token(注意时效性,一般我们建议对方需要做一个定时任务去获取,以保证SF系统中能最大限度的利用API的数量)然后根据获取到的Token再去调用接口。
以上两种方式准备完毕后,下面进行集成讲解。
rest集成方式
@RestResource (urlMapping='/datacenter/api/')
global class CallinListenerRest
{
@HttpGet
global static void doget()
{
// 用于接收请求
RestRequest webRequest = RestContext.request;
// 用于回复请求
RestResponse webResponse = RestContext.response;
String name = req.params.get('name');
String pwd = req.params.get('pwd');
webResponse.responseBody = Blob.valueOf('Success');
}
// 如果需要类的封装见post集成方式
}
POST集成方式
@RestResource (urlMapping='/datacenter/api/')
global class CallinListenerRest
{
@HttpPost
global static void dopost(RequestClass requestPara)
{
// 用于接收请求
RestRequest webRequest = RestContext.request;
// 用于回复请求
RestResponse webResponse = RestContext.response;
// WeChatUser__c SFDC中的自定义对象
WeChatUser__c user = new WeChatUser__c();
user.OpenId__c = requestPara.OpenId;
user.city__c = requestPara.city;
user.country__c = requestPara.country;
user.headimgurl__c = requestPara.headimgurl;
user.nickname__c = requestPara.nickname;
user.province__c = requestPara.province;
user.sex__c = requestPara.sex;
user.subscribe_time__c = requestPara.subscribe_time;
upsert user OpenId__c;
Response res = new Response();
res.Success = true;
res.StringResult = '成功';
return res; // 返回封装的内容
}
// RequestClass 请求内容的封装 可单独抽取出来
global class RequestClass{
global String city{get;set;}
global String country{get;set;}
global String headimgurl{get;set;}
global String nickname{get;set;}
global String OpenId{get;set;}
global String province{get;set;}
global String sex{get;set;}
global String subscribe_time{get;set;}
}
// 返回内容的封装 可单独抽取出来
global class Response
{
global Boolean Success {get;set;}
global String StringResult {get;set;}
public Response()
{
Success = false;
StringResult = '';
}
}
}
小结:以上两种方式简单的介绍了Salesforce中接口接收数据的两种方式,接口中可扩展性很高。其实这个东西跟java中的Servlet很像,如果理解了servlet在看这个其实很简单。