NAV Navbar
shell php
  • 简介 Introduction
  • 认证方式 Authentication
  • API 获取 SDS
  • API 获取 REACH 信息
  • 错误 Errors
  • 简介 Introduction

    XiXisys API 文档

    happy hacking!

    认证方式 Authentication

    可以通过以下方式获取 access_token

    curl -XPOST \
      https://www.xixisys.com/oauth/token \
      -H "X-Requested-With: XMLHttpRequest" \
      -H "Content-Type: application/json" \
      -d '{"grant_type": "client_credentials", "client_id": "CLIENT_ID", "client_secret": "CLIENT_SECRET"}'
    
    <?php
    
    $guzzle = new GuzzleHttp\Client;
    $response = $guzzle->post('https://www.xixisys.com/oauth/token', [
        'form_params' => [
            'grant_type' => 'client_credentials',
            'client_id' => 'CLIENT_ID',
            'client_secret' => 'CLIENT_SECRET', 
        ],
    ]);
    echo json_decode((string) $response->getBody(), true);
    

    将 CLIENT_ID 和 CLIENT_SECRET 替换成自己的秘钥, 返回:

    {
      "token_type": "Bearer",
      "expires_in": 31536000, // 
      "access_token": "...",
    },
    

    XiXisys 使用 access_token 来授权每一个 API 请求,你可以通过 POST 请求 /oauth/token 的方式来获取 access_token,该 token 在 expires_in 的时间里都是有效的,所以可以将该 token 之存在缓存里,方便在每一次请求中使用

    HTTP 请求

    POST https://www.xixisys.com/oauth/token

    POST 数据参数

    参数 介绍 是否必须
    grant_type client_credentials
    client_id 授权的客户端ID
    client_secret 授权的客户端秘钥

    之后 XiXisys 每一个请求头部都应该包含如下的 Header:

    Authorization: {token_type} {access_token} // token_type 和 access_token 是 API 返回的

    API 获取 SDS

    curl "https://www.xixisys.com/api/widgets/sds/{cas}/{type}" \
      -H "X-Requested-With: XMLHttpRequest" \
      -H "Content-Type: application/json" \
      -H "Authorization: Bearer ..."
    
    <?php
    
    $guzzle = new GuzzleHttp\Client;
    $response = $guzzle->get('https://www.xixisys.com/api/widgets/sds/{cas}/{type}');
    echo json_decode((string) $response->getBody(), true);
    

    将 cas 和 type 换成自己的 cas 号和 SDS 版本类型,返回:

    {
      "code": 0,
      "msg": "",
      "data": "...." // 这是一段 html 字符串
    }
    

    如果 cas 号找不到将返回:

    {
      "code" : "cas_not_found",
      "msg" : "cas not found"
    }
    

    获取某一个 cas 号对应版本类型的 SDS

    HTTP 请求

    GET https://www.xixisys.com/api/widgets/sds/{cas}/{type}

    Query 数据参数

    参数 默认值 介绍 是否必须
    cas cas 号码
    type ghs 只能是ghs/cn
    company_name XiXisys.com 自定义的公司名称
    company_address XiXisys.com 自定义的公司地址
    company_postcode XiXisys.com 自定义的公司邮编
    company_fax XiXisys.com 自定义的公司传真号码
    company_phone XiXisys.com 自定义的公司电话
    company_email XiXisys.com 自定义的公司邮箱地址
    company_phone_emergency - 自定义的公司应急电话

    示例如下:

    https://www.xixisys.com/api/widgets/sds/50-00-0/cn?company_name=xixisys&company_address=hangzhou

    API 获取 REACH 信息

    curl "https://www.xixisys.com/api/jsons/reach/{cas_or_ec}" \
      -H "X-Requested-With: XMLHttpRequest" \
      -H "Content-Type: application/json" \
      -H "Authorization: Bearer ..."
    
    <?php
    
    $guzzle = new GuzzleHttp\Client;
    $response = $guzzle->get('https://www.xixisys.com/api/jsons/reach/{cas_or_ec}');
    echo json_decode((string) $response->getBody(), true);
    

    将 cas_or_ec 换成自己的 cas 号或者 ec 号,返回:

    {
      "code": 0,
      "msg": "",
      "data": {
        cas: "物质 CAS 号", 
        ec: "物质 EC 号", 
        name: "物质名称", 
        is_registered: "物质是否已经注册", 
        url_echa_information: "该物质在ECHA上的 information page", 
        url_ehca_cl_inventory: "该物质在ECHA上的 C&L Inventory page", 
        url_echa_brief_profile: "该物质在ECHA上的 Brief Profile page", // (当该物质已经注册)
        dossiers: [{ // (当该物质已经注册)
            registration_type: "卷宗的注册类型", 
            submission_type: "注册方式", 
            tonnage_band: "总注册吨位", 
            fact_sheet_url: "可查看该卷宗详细信息的 Url 地址"
        }],
        registrants: [{ // (当该物质已经注册)
          name: "已注册公司的名称", 
          address: "公司地址", 
          last_dossier_received: "注册年份", 
          status: "状态"
        }]
      }
    }
    

    如果 cas 号或者 ec 号找不到将返回:

    {
      "code" : "cas_or_ec_not_found",
      "msg" : "cas or ec not found"
    }
    

    获取某一个 cas 号 或 ec 号对应的REACH信息

    HTTP 请求

    GET https://www.xixisys.com/api/jsons/reach/{cas_or_ec}

    Query 数据参数

    参数 默认值 介绍 是否必须
    cas_or_ec cas 号或者 ec 号

    Registration Type Code 对应表

    code en cn
    NA NA NA
    FULL Full 完整注册
    INTERMEDIATE Intermediate 中间体注册
    NONS NONS NONS

    Submission Type Code 对应表

    code en cn
    JOINT Joint 联合提交
    INDIVIDUAL Individual 单独提交

    Tonnage Band Code 对应表

    code en cn
    TONNAGE_DATA_CONFIDENTIAL Tonnage Data Confidential 吨位保密
    INTERMEDIATE_USE_ONLY Intermediate Use Only 仅中间体注册
    0_10 0 - 10 tonnes per annum 0 - 10 吨/年
    10_100 10 - 100 tonnes per annum 10 - 100 吨/年
    100_1000 100 - 1000 tonnes per annum 100 - 1000 吨/年
    1000_10000 1000 - 10000 tonnes per annum 1000 - 10000 吨/年
    10000_100000 10000 - 100000 tonnes per annum 10000 - 100000 吨/年
    100000_1000000 100000 - 1000000 tonnes per annum 100000 - 1000000 吨/年
    1000000_10000000 1000000 - 10000000 tonnes per annum 1000000 - 10000000 吨/年
    10000000_100000000 10000000 - 100000000 tonnes per annum 10000000 - 100000000 吨/年
    100000000_1000000000 100000000 - 1000000000 tonnes per annum 100000000 - 1000000000 吨/年
    10PLUS 10+ tonnes per annum 10+ 吨/年
    100PLUS 100+ tonnes per annum 100+ 吨/年
    1PLUS 1+ tonnes per annum 1+ 吨/年
    1000PLUS 1000+ tonnes per annum 1000+ 吨/年
    10000PLUS 10000+ tonnes per annum 10000+ 吨/年
    100000PLUS 100000+ tonnes per annum 100000+ 吨/年
    1000000PLUS 1000000+ tonnes per annum 1000000+ 吨/年
    10000000PLUS 10000000+ tonnes per annum 10000000+ 吨/年
    100000000PLUS 100000000+ tonnes per annum 100000000+ 吨/年
    1000000000PLUS 1000000000+ tonnes per annum 1000000000+ 吨/年
    10000000000PLUS 10000000000+ tonnes per annum 10000000000+ 吨/年

    错误 Errors

    XiXisys API 使用以下错误编码:

    Error Code Meaning
    400 Bad Request
    401 Unauthorized. -- 可能你的 access_token 已经过期或者错误
    403 Forbidden
    404 Not Found
    500 Internal Server Error
    503 Service Unavailable