浅析 salesforce rest 集成方式中的 get 和 post 请求

salesforce rest interface get and post

salesforce 提供了标准的rest和soap接口供外部程序调用,但是往往项目中拿到的需求点是需要我们定制化进行开发的。本文简单的介绍一下,rest接口在salesforce中的使用的两种方式。
前提:当我们使用rest的集成方式时,首先需要能成功的与salesforce平台进行会话,一般我们有两种处理方式:

  1. 将接口放到站点上进行暴露
  2. 需要连接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在看这个其实很简单。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值