多语言Http客户端

说明

  • 本文主要讲解其他语言的http服务如何接入网关。
  • 接入网关需要先获取 token, 然后可以根据需求调用注册服务或元数据接口

获取 token

  • 请求方式

    GET

  • 请求路径

    • http://{shenyu-admin}/platform/login
    • 其中 shenyu-admin 表示为 admin 后台管理系统的 ip + port
  • 请求参数

    • query参数,账号密码为 admin 服务的用户名和密码

      字段类型是否必填描述
      userNameString用户名
      passwordString密码
  • 返回数据

    字段类型描述
    codeInteger返回码
    messageString返回信息
    dataObject返回对象
    idInteger用户id
    userNameString账号
    roleInteger角色
    enabledBoolean是否启用
    dateCreatedString创建时间
    dateUpdatedString更新时间
    tokenStringtoken
    expiredTimeLong超时时间,单位:毫秒

    示例

    1. {
    2. "code": 200,
    3. "message": "login dashboard user success",
    4. "data": {
    5. "id": "1",
    6. "userName": "admin",
    7. "role": 1,
    8. "enabled": true,
    9. "dateCreated": "2022-09-07 22:08:23",
    10. "dateUpdated": "2022-09-07 22:08:23",
    11. "token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1c2VyTmFtZSI6ImFkbWluIiwiZXhwIjoxNjYyNjQ2MzU5fQ.WBXBgCcGsnnC00pRbDOtqCVoAaZr8MKH6WE6kY-NGaI",
    12. "expiredTime": 86400000
    13. }
    14. }

注册服务

  • 请求方式

    POST

  • 请求路径

    • http://{shenyu-admin}/shenyu-client/register-uri
    • 其中 shenyu-admin 表示为 admin 后台管理系统的 ip + port
  • 请求参数

    • Header参数

      • contentType: application/json

      • X-Access-Token: {token},token 为调用登陆接口获取的 token

    • Body参数,json类型

      字段类型是否必填描述
      protocolString协议类型
      appNameString应用名称
      contextPathString项目路径
      rpcTypeStringrpc类型,支持的类型参考 RpcTypeEnum
      hostString客户端IP
      portInteger客户端端口
      eventTypeString事件类型,支持的类型参考 EventType

      示例

      1. {
      2. "protocol": "http",
      3. "appName": "app",
      4. "contextPath": "/test",
      5. "rpcType": "http",
      6. "host": "127.0.0.1",
      7. "port": "8080",
      8. "eventType": "REGISTER"
      9. }
  • 返回数据

    注册成功会返回 success

注册元数据

  • 请求方式

    POST

  • 请求路径

    • http://{shenyu-admin}/shenyu-client/register-metadata
    • 其中 shenyu-admin 表示为 admin 后台管理系统的 ip + port
  • 请求参数

    • Header参数

      • contentType: application/json

      • X-Access-Token: {token},token 为调用登陆接口获取的 token

    • Body参数,json类型

      字段类型是否必填描述
      appNameString应用名称
      contextPathString项目路径
      pathString路径
      pathDescString路径描述
      rpcTypeStringrpc类型,支持的类型参考 RpcTypeEnum
      serviceNameString服务名称
      methodNameString方法名称
      ruleNameString规则名称
      parameterTypesString参数类型
      rpcExtStringRpc拓展参数
      enabledBoolean状态
      hostString服务 IP
      portInteger服务端口
      pluginNamesList插件名称列表
      registerMetaDataBoolean是否注册元数据

      示例

      1. {
      2. "appName": "app",
      3. "contextPath": "/",
      4. "path": "/test",
      5. "rpcType": "http",
      6. "serviceName": "测试服务",
      7. "parameterTypes": "java.lang.String",
      8. "pathDesc": "测试路径",
      9. "methodName": "测试方法",
      10. "ruleName": "测试规则",
      11. "rpcExt": "{\"loadbalance\":\"hash\",\"retries\":3,\"timeout\":-1}",
      12. "enabled": true,
      13. "host": "127.0.0.1",
      14. "port": 8080,
      15. "pluginNames": [],
      16. "registerMetaData": true
      17. }
  • 返回数据

    注册成功会返回 success