API_仪器控网关 - 17kong/yiqikong-wiki GitHub Wiki

17kong-gateway网关协议文档

公用接口协议

公用协议即在没有进行APP认证时可以调用的协议 APP的所有请求必须在HEADER中增加当前客户端版本

App 版本验证

path: / (所有请求)

请求
{
  'HEADER': {
    'x-friday-version': '1.0'
  }
}
响应

验证通过: 返回请求资源各自的结果(例如请求/gateway/auth, 返回/auth的结果)

验证不通过: Friday 版本过低, 请移步商店进行更新, 否则无法继续使用!

登录

path: /auth

请求
{
  'HEADER': {
    // 可以置空
  },
  'BODY': {
    'username': 'genee'
    'password': 'Az123456'
  }
}
响应
{
    "tokenStr": "8f722c80-4a9f-11e8-be92-0d3d9f1b1128",
    "userId": 1,
    "exp": "2018-5-5 12:49:40",
    "rest": [
        {
          // 待扩展
          "id": 1,
          "email": "12@1"
        }
    ]
}

注册

path: /signup

请求
{
  'HEADER': {
    // 可以置空
  },
  'BODY': {
    'email': '[email protected]',
    'code': 'qwer',
    'password': 'Az123456'
  }
}
响应
{
    // 见yiqikong-user文档
}

登录后接口协议

即只有确定进行了正常的验证并通过后才可以进行调用的协议 目前特指人员登录后(携带Token)

所有dispatch请求都需携带header: token、route、method

请求 (APP发送给Gateway结构示例):
{
  'HEADER': {
    'token': 'f905a680-4aa0-11e8-8719-f5dd055e4e60',
    'route': 'sample', // 配置的仪器控微服务[user|directory|sample|reserv|approve]
    'method': 'http' // 默认http转发,如需直接放入消息队列,写beanstalk
  },
  'BODY': {
    ...balabala
  }
}
响应 (Gateway响应给APP端结构示例):
{
  'HEADER': {
    'route': 'sample', // 配置的仪器控微服务[user|directory|sample|reserv|approve]
    'method': 'http' // 默认http转发,如需直接放入消息队列,写beanstalk
  },
  'BODY': {
    // 具体字段见yiqikong-sample文档,此结构仅是示例
    1: {
      sampleId: 12,
      equipmentId: 3,
      senderId: 2
      description: '送样预约'
    }
  }
}
附:
  • 若HTTP HEADER中,指定method为beanstalk,Gateway将根据配置将body序列化后,放入指定tube

例如上述请求,yiqikong-sample从beanstalkd-sample-tube中取出的数据结构,json_decode后如下:

{
  'method': 'GET',
  'path': '/sample/12?foo=bar',
  'body': {
      ...balabala
    }
  }
}

GET

通过 Token 获得用户信息

  • path: /gateway/user/
请求
{
  ... any
}
响应
{
    "tokenStr": "f6de5680-4a9c-11e8-ad06-c1f15faef7b2",
    "userId": "1",
    "exp": "2018-5-5 12:31:05",
    "rest": []
}

POST

续签 Token

  • path: /refresh_token
请求
{
  'HEADER': {
    'refreshToken': '123'
    'imei': '12'
    'userId': '1'
  },
  'BODY': {
    // 可以置空
  }
}
响应
{
    "tokenStr": "f6de5680-4a9c-11e8-ad06-c1f15faef7b2",
    "userId": "1",
    "exp": "2018-5-5 12:31:05",
    "rest": []
}

附录

dispatch 转发说明

需在config/app.js中配置router

test转发Server说明

需在config/app.js中配置testMode

错误信息格式说明

HTTP错误

该错误均会采用标准的HTTP Error格式即包含Code和Message的形式

⚠️ **GitHub.com Fallback** ⚠️