SuccessFactors Rest API语法
2026/4/23 18:41:21 网站建设 项目流程

01Rest Api的概念

REST API(Representational State Transfer API,表述性状态传递应用程序接口)是一种遵循REST 架构风格的 Web API 设计规范。它利用 HTTP 协议的特性,将服务器上的数据或功能抽象为“资源”,并通过标准的 HTTP 方法(GET、POST、PUT、DELETE 等)对这些资源进行操作。

1.1 核心约束

  1. 简单记忆:REST API 就是把数据当成“资源”,用 HTTP 动词 + URL 来操作它们,每次请求独立,数据格式多为 JSON。

    • GET:获取资源(安全、幂等)

    • POST:创建新资源

    • PUT/PATCH:完整或部分更新资源

    • DELETE:删除资源

    1. 资源与 URI
      每个资源(如用户、文章、订单)都有唯一的地址(URI)。
      例如:/users/123表示 ID 为 123 的用户。

    2. HTTP 方法表达操作意图

    3. 无状态
      服务器不保存客户端上下文,每个请求必须包含所有必要信息(如认证 token、请求参数)。这使系统易于水平扩展。

    4. 统一接口
      使用固定的媒体类型(通常是 JSON 或 XML)返回资源表现,客户端通过超链接发现后续操作。

    5. 可缓存
      HTTP 缓存机制可被合理利用,提升性能。

02实际案例

查询参数:$filter、$select、$expand

没有加查询参数的时候,数据是获取到4条数据https://apipreview.sapsf.eu/rest/rewards/compensation/v1/employeeCompensations?templateId=719

过滤数据:$filter

现在加上过滤&$filter=compEntryId eq 10959,我们发现数据变成只有一条,所以这个过滤条件是Odata是一样的。

过滤数据:$select

因为返回的是Json对象,所以有很多字段,我们并不需要那么多字段,这样能减少网络的开销,所以我们用$select选取我们需要的字段,所以这个的逻辑和odata的逻辑逻辑其实也是一样的。

关联:$expand

我们看上图有个节点是salary,它是一个嵌套节点,下面包含很多子字段,注意:这个时候的语法就和odata和传统的Rest语法不一样,SuccessFactros的Rest有独特的语法,$expand

https://apipreview.sapsf.eu/rest/rewards/compensation/v1/employeeCompensations?templateId=719&$filter=compEntryId eq 10959&$select=salary&$expand=salary($select=customFields/customField1)

这个我们要拆出来看:①https://apipreview.sapsf.eu/rest/rewards/compensation/v1/employeeCompensations?templateId=719&

$filter=compEntryId eq 10959

②$select=salary

③$expand=salary($select=customFields/customField1)

第一层很好理解,就是过滤条件;

第二层也好理解,就是取到带有子节点的集合数据;

第三层意思是,$expand=salary是需要找到salary的子节点数据,$select=customFields说明customFields是salary的子节点,customFields/customField1说明customFields也是一个带有子节点的集合,我取这个集合里面的customField1的数据

所以如果是嵌套的结构,我们用$expand、$select、和原生的/来取嵌套的数据结构里面的字段。

分页方式:$top (限制数量) +$skip(跳过数量)

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询