ali-sdk / node-dingtalk

node sdk for dingtalk

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

API 设计

atian25 opened this issue · comments

@fengmk2 有空可以帮忙看看这个库的 API 设计是否合理.

目前纠结的点是, 如果服务端返回的状态码是错误, 是否要抛错?

当前的设计是:

  1. 绝大部分的 API, 当状态码为错误的时候, 直接 throw error, 参见 client.js#L76
  2. user.get / department.get 这些比较常用的, 就不 throw, 返回 undefined
  3. 支持全局的 options.ignoreError 配置

404 的在 get场景不应该抛错,返回 null。

其他基本都应该抛错,除非是服务端明确应该忽略的错误

ignore error全局配置很危险的,为何要忽略?

之前的设想是, 给开发者选择使用方式, 是 try 还是 自己判断 errcode

既然选择了 co 模式,throw error + try catch 才是标准模式,errcode 那个就是 callback。

ok, 那我等会干掉.

顺便, 这种的单测其实挺麻烦的, 譬如 user 那里, 测试 delete... 删除多了就超 API 上限了 -.-!!

mock server api

这么薄的 wrap, mock 的话好像就没啥好测了. 如果对方 api 变更, 也感知不到吧?

基本流程也是真实请求的,然后大量重复调用的 mock ,确保不超标。

@atian25 我刚才发的那个dd sdk里专门申请了一个钉钉组织的账号,里面创建了两个账号和部门做单测-_-

我这个也是,但还是有一定受限的。