5 Star 1 Fork 1

datapid / pid-sdk-java

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
README-DISSERTATION.md 23.86 KB
一键复制 编辑 原始数据 按行查看 历史

学位论文标识注册接口

用于学位论文标识注册,可调用该接口完成标识包括元数据的注册。

请求地址

环境 HTTPS 请求地址 Method
正式环境 https://www.cstr.cn/openapi/v2/pid-doi-service/dissertation.batch.register POST
沙盒环境 https://www.cstr.cn/sandbox/openapi/v2/pid-doi-service/dissertation.batch.register POST

公共请求参数

参数 类型 是否必填 最大长度 描述 示例值
clientId String 32 分配给开发者的应用ID 12位长度字符串
secret String 32 秘钥 32位长度字符串

参数详情

请求数据格式为xml或JSON

参数 描述 长度 字段类型 必填 可选值与限定条件
titleCN 标题(中文) 500 String 中文标题长度不能大于500
titleEN 标题(英文) 500 String 英文标题长度不能大于500 , 如无请填写"none"
keywordsCN 关键词(中文) List<String>
keywordsEN 关键词(英文) List<String> 如无请填写"none"
abstractCN 摘要(中文) 5000 String 中文摘要长度不能大于5000
abstractEN 摘要(英文) 5000 String 英文摘要长度不能大于5000 , 如无请填写"none"
type 学位论文类型 2 String 请使用 学位论文类型 中key值
identifier CSTR标识 255 String 编码符合CSTR要求,不得包含【!】、【?】
doi DOI标识 255 String 标题不少于3个英文文字符,不多于1024个英文文字符
identificationStatus 标识状态 10 Int 请使用 状态数据字典 中key值
url 资源链接 500 String 学位论文链接地址长度不能大于500
author 作者 DissertationAuthor
-name 作者姓名 200 String 作者姓名长度不能超过200,且不能为空
-email 作者邮箱 50 String 如无请填写"none"
-organizations 作者机构 List<String> 作者机构信息不能为空
supervisors 导师 List<DissertationSupervisor;
-sequence 导师顺序 Int
-name 导师姓名 200 String
-affiliation 导师机构 500 List<String>
org 机构信息 List<DissertationOrg>
-grantCN 授予机构名称(中文) 200 String 作者姓名长度不能超过200,且不能为空
-grantEN 授予机构名称(英文) 50 String
-trainingCN 培养单位名称(中文) String 作者机构信息不能为空
-trainingEN 培养单位名称(英文) String 作者机构信息不能为空
year 5 String 中文标题长度不能大于500
month 2 String 选择项07或12
day 500 String 默认1号
projects 资助项目 List<DissertationProjectgt;
-projectId 资助项目编号 100 String
-projectType 资助项目类型 5 String 请使用 项目类型数据字典 中key值
-projectName 资助项目名称 20 String

数据字典

学位论文类型数据字典

key value
01 博士学位论文
02 硕士学位论文
03 本科学位论文

项目类型数据字典

key value
100 科技部-国家科技重大专项
101 科技部-国家重点研发计划
102 科技部-技术创新引导专项
103 科技部-基地和人才专项
104 科技部-973计划
105 科技部-863计划
106 科技部-国家科技支撑计划
107 科技部-科技基础性工作专项
108 科技部-国际科技合作专项
109 科技部-政策引导类科技计划及专项
199 科技部-其他
200 基金委-面上项目
201 基金委-重点项目
202 基金委-重大研究计划项目
203 基金委-青年科学基金项目
204 基金委-地区科学基金项目
205 基金委-优秀青年科学基金项目
206 基金委-国家杰出青年基金项目
207 基金委-创新研究群体项目
208 基金委-海外及港澳学者合作研究基金项目
209 基金委-国际(地区)合作研究与交流项目
210 基金委-联合基金项目
211 基金委-国家重大科研仪器研制项目
299 基金委-其他
300 发改委-国家高技术产业化项目
399 发改委-其他
400 中科院-院战略性先导科技专项
401 中科院-院重大项目
402 中科院-院重要方向性项目
403 中科院-院“百人计划”
404 中科院-研究所创新性项目
405 中科院-院创新人才项目
406 中科院-院外国专家特聘研究员
407 中科院-院信息化专项
408 中科院-网络安全和信息化专项
499 中科院-其他
500 国际合作-国家国际合作项目
501 国际合作-院级国际合作项目
502 国际合作-所级国际合作项目
599 国际合作-其他
600 地方-财政科技计划项目
601 地方-自然科学基金
602 地方-社会科学基金
699 地方-其他

状态数据字典

key value
0 草稿
1 注册
2 可发现

公共响应参数

参数 类型 是否必填 最大长度 描述 示例值
code int - 网关返回状态码 200
message String - 网关返回码描述信息 success
timestamp String - 时间戳,参见具体的API接口文档 2019-09-06 10:06:35
data Map - 业务返回数据,参见响应参数 字符串,对象

请求参数示例

<?xml version='1.0' encoding='UTF-8'?>
<metadata_wrapper>
  <metadatas>
    <metadata>
      <day>01</day>
      <org>
        <grantCN>中国科学院大学</grantCN>
        <grantEN>University of Chinese Academy of Sciences</grantEN>
        <trainingCN>中国科学院计算机网络信息中心</trainingCN>
        <trainingEN>Computer Network Information Center,Chinese Academy of Science</trainingEN>
      </org>
      <type>01</type>
      <month>07</month>
      <year>2020</year>
      <titleCN>中国积雪特性时空分布电子地图集</titleCN>
      <titleEN>Computer Network Information Center,Chinese Academy of Science</titleEN>
      <url>https://nmdc.cn/metadata/detail?id=5f508efd3b634971273f7da2</url>
      <abstract_cn>积雪作为冰冻圈的重要组成部分,对气候变化、水资源..</abstract_cn>
      <abstract_en>As an important part of the cryosphere, snow cover...</abstract_en>
      <identifier>CSTR:32002.14.TESTDATA</identifier>
      <doi>10.11922/11-6035.ncdc.2021.0030.zh</doi>
      <keywords_cns>
        <keywords_cn>中国</keywords_cn>
        <keywords_cn>积雪物候</keywords_cn>
        <keywords_cn>积雪深度</keywords_cn>
      </keywords_cns>
      <keywords_ens>
        <keywords_en>China</keywords_en>
        <keywords_en>snow phenology</keywords_en>
        <keywords_en>snow depth</keywords_en>
      </keywords_ens>
      <author>
        <name>张学良</name>
        <organizations>
          <organization>安徽师范大学地理与旅游学院</organization>
          <organization>xxxxx学院</organization>
        </organizations>
        <email>zxl@nju.edu.cn</email>
      </author>
      <projects>
        <project>
          <projectId>2017FY100500</projectId>
          <projectType>107</projectType>
          <projectName>科技部国家科技基础资源调查专项</projectName>
        </project>
        <project>
          <projectId>42171307</projectId>
          <projectType>107</projectType>
          <projectName>国家自然科学基金</projectName>
        </project>
      </projects>
      <supervisors>
        <supervisor>
          <sequence>1</sequence>
          <name>张文旭</name>
          <affiliation>
            <affiliation>中国科学院大学</affiliation>
          </affiliation>
        </supervisor>
      </supervisors>
      <identification_status>2</identification_status>
    </metadata>
  </metadatas>
</metadata_wrapper>
{
  "metadatas" : [ {
    "org" : {
      "grantCN" : "中国科学院大学",
      "grantEN" : "University of Chinese Academy of Sciences",
      "trainingCN" : "中国科学院计算机网络信息中心",
      "trainingEN" : "Computer Network Information Center,Chinese Academy of Science"
    },
    "type" : "01",
    "day" : "01",
    "month" : "07",
    "year" : "2020",
    "titleCN" : "中国积雪特性时空分布电子地图集",
    "titleEN" : "Computer Network Information Center,Chinese Academy of Science",
    "url" : "https://nmdc.cn/metadata/detail?id=5f508efd3b634971273f7da2",
    "abstractCN" : "积雪作为冰冻圈的重要组成部分,对气候变化、水资源..",
    "abstractEN" : "As an important part of the cryosphere, snow cover...",
    "identifier" : "CSTR:32002.14.TESTDATA",
    "doi" : "10.11922/11-6035.ncdc.2021.0030.zh",
    "keywordsCN" : [ "中国", "积雪物候", "积雪深度" ],
    "keywordsEN" : [ "China", "snow phenology", "snow depth" ],
    "author" : {
      "name" : "张学良",
      "organizations" : [ "安徽师范大学地理与旅游学院", "xxxxx学院" ],
      "email" : "zxl@nju.edu.cn"
    },
    "projects" : [ {
      "projectId" : "2017FY100500",
      "projectType" : "107",
      "projectName" : "科技部国家科技基础资源调查专项"
    }, {
      "projectId" : "42171307",
      "projectType" : "107",
      "projectName" : "国家自然科学基金"
    } ],
    "supervisors" : [ {
      "sequence" : 1,
      "name" : "张文旭",
      "affiliation" : [ "中国科学院大学" ]
    } ],
    "identificationStatus" : 2
  } ]
}

测试代码

public void testRegister() throws IOException {
        //是否使用沙盒环境,将下一行代码放开,则会使用沙盒环境
        //System.setProperty(PidRequest.ACTIVE,PidRequest.SANDBOX);
        String getIdentifier = PidClient.create("clientId", "secret").request(DissertationGetIdentifierRequest.builder().text("授予机构","培养单位", "学位论文类型", 2020)).execute();// year 为发稿年份
        JSONObject object = JSON.parseObject(getIdentifier);
        Integer code = Integer.valueOf(object.getString("code"));
        String identifier = "";
        if (code == 200){
            identifier = object.getJSONObject("data").getString("content");
            
            DissertationOrg dissertationOrg  = new DissertationOrg();
            dissertationOrg.setGrantCN("中国科学院大学");
            dissertationOrg.setGrantEN("University of Chinese Academy of Sciences");
            dissertationOrg.setTrainingCN("中国科学院计算机网络信息中心");
            dissertationOrg.setTrainingEN("Computer Network Information Center,Chinese Academy of Science");
            DissertationAuthor dissertationAuthor = new DissertationAuthor();
            dissertationAuthor.setName("张学良");
            dissertationAuthor.setOrganizations(Arrays.asList("安徽师范大学地理与旅游学院","xxxxx学院"));
            dissertationAuthor.setEmail("zxl@nju.edu.cn");
            DissertationProject dissertationProject = new DissertationProject();
            dissertationProject.setProjectId("2017FY100500");
            dissertationProject.setProjectType("107");
            dissertationProject.setProjectName("科技部国家科技基础资源调查专项");
            DissertationProject dissertationProject2 = new DissertationProject();
            dissertationProject2.setProjectId("42171307");
            dissertationProject2.setProjectType("107");
            dissertationProject2.setProjectName("国家自然科学基金");
            // 导师相关
            DissertationSupervisor supervisor = new DissertationSupervisor();
            supervisor.setSequence(1);
            supervisor.setName("张文旭");
            supervisor.setAffiliation(Arrays.asList("中国科学院大学"));
            
            DissertationMetadata metadata = DissertationMetadata.builder()
                    .org(dissertationOrg)// 机构信息
                    .type("01")//类型
                    .day("01")//发布日
                    .month("07")//发布月
                    .year("2020")
                    .titleCN("中国积雪特性时空分布电子地图集") //中文标题
                    .titleEN("Computer Network Information Center,Chinese Academy of Science") // 英文标题
                    .url("https://nmdc.cn/metadata/detail?id=5f508efd3b634971273f7da2")
                    .abstractCN("积雪作为冰冻圈的重要组成部分,对气候变化、水资源..") // 中文摘要
                    .abstractEN("As an important part of the cryosphere, snow cover...") //英文摘要 没有英文可不填写
                    .identifier(identifier) // CSTR:xxxxx.xx.xxx
                    .doi("10.11922/11-6035.ncdc.2021.0030.zh")// doi 好
                    .keywordsCN(Arrays.asList("中国","积雪物候","积雪深度"))//中文关键词
                    .keywordsEN(Arrays.asList("China","snow phenology","snow depth"))//英文关键词
                    .author(dissertationAuthor)//文章作者
                    .projects(Arrays.asList(dissertationProject,dissertationProject2))//论文资助项目
                    .supervisors(Arrays.asList(supervisor)) // 导师相关信息
                    .identificationStatus(2)//标识状态 0:草稿1:可注册 2:可发现
                    .build();
           //单条或多条标识信息
            List<DissertationMetadata> metadataList = Lists.newArrayList();
            //可放入多条元数据进行批量注册 - list.size() < 200
            metadataList.add(bulidMetadata(identifier));

            //设置批量注册 学位论文 元数据及前缀信息
            DissertationDataWrapper wrapper = new DissertationDataWrapper();
            wrapper.setMetadatas(metadataList);
            //生成数据格式可选 json/xml
            String xml = JacksonUtils.create("xml").convert(wrapper);

            log.debug("XML metadata list is : {}",xml);
            System.out.println(xml);
            //执行标识注册并返回结果
            String result =
                    PidClient.create("clientId", "secret")
                            .request(DissertationRegisterRequest.builder().paramType(ParamType.XML).params(xml))
                            .execute();
            log.debug("response is : {}",result);
            System.out.println(result);
        }else{
            log.error("标识号生成失败");
        }
    }

响应实例

JSON实例

{ "code": 200, "message": "success", "timestamp": "2019-07-25 11:29:21", "data": null }

异常实例

JSON实例

{ "code": 501, "message": "数据注册错误", "timestamp": "2019-07-25 11:29:21", "data": null }

业务错误码

错误码 错误描述 解决方案
SYSTEM_ERROR 系统异常 重新发起请求
CSTR_REGISTER_ERROR 标识注册异常 检查请求参数,修改后重新发起请求

学位论文标识详情接口

请求地址

环境 HTTPS请求地址 Method
正式环境 https://www.cstr.cn/openapi/v2/pid-doi-service/dissertation.detail?identifier=CSTR:32002.14.TESTDATA GET
沙盒环境 https://www.cstr.cn/sandbox/openapi/v2/pid-doi-service/dissertation.detail?identifier=CSTR:32002.14.TESTDATA GET

公共请求参数

参数 类型 是否必填 最大长度 描述 示例值
clientId String 32 分配给开发者的应用ID 12位长度字符串
secret String 32 秘钥 32位长度字符串

请求参数

参数 类型 是否必填 最大长度 描述 示例值
identifier String 128 标识 CSTR:32002.14.TESTDATA

公共响应参数

参数 类型 是否必填 最大长度 描述 示例值
code int - 网关返回状态码 200
message String - 网关返回码描述信息 标识查询失败
timestamp String - 时间戳,参见具体的API接口文档 2019-09-06 10:06:35
data Map - 业务返回数据,参见响应参数 字符串,对象

响应参数

请参考注册接口参数详情

响应实例

{
  "code": 200,
  "message": "success",
  "timestamp": "2022-06-14 17:50:30",
  "data": {
    "content": {
        "org" : {
          "grantCN" : "中国科学院大学",
          "grantEN" : "University of Chinese Academy of Sciences",
          "trainingCN" : "中国科学院计算机网络信息中心",
          "trainingEN" : "Computer Network Information Center,Chinese Academy of Science"
        },
        "type" : "01",
        "day" : "01",
        "month" : "07",
        "year" : "2020",
        "titleCN" : "中国积雪特性时空分布电子地图集",
        "titleEN" : "Computer Network Information Center,Chinese Academy of Science",
        "url" : "https://nmdc.cn/metadata/detail?id=5f508efd3b634971273f7da2",
        "abstractCN" : "积雪作为冰冻圈的重要组成部分,对气候变化、水资源..",
        "abstractEN" : "As an important part of the cryosphere, snow cover...",
        "identifier" : "CSTR:32002.14.TESTDATA",
        "doi" : "10.11922/11-6035.ncdc.2021.0030.zh",
        "keywordsCN" : [ "中国", "积雪物候", "积雪深度" ],
        "keywordsEN" : [ "China", "snow phenology", "snow depth" ],
        "author" : {
          "name" : "张学良",
          "organizations" : [ "安徽师范大学地理与旅游学院", "xxxxx学院" ],
          "email" : "zxl@nju.edu.cn"
        },
        "projects" : [ {
          "projectId" : "2017FY100500",
          "projectType" : "107",
          "projectName" : "科技部国家科技基础资源调查专项"
        }, {
          "projectId" : "42171307",
          "projectType" : "107",
          "projectName" : "国家自然科学基金"
        } ],
        "supervisors" : [ {
          "sequence" : 1,
          "name" : "张文旭",
          "affiliation" : [ "中国科学院大学" ]
        } ],
        "identificationStatus" : 2
    } 
  }
}

测试代码

 public void testQuery() throws IOException {
        String execute = PidClient.create("clientId", "secret").request(DissertationQueryRequest.builder().text("标识号")).execute();
        System.out.println(execute);
    }

异常实例

JSON实例

{ "code": 501, "message": "数据错误", "timestamp": "2019-07-25 11:29:21", "data": null }

业务错误码

错误码 错误描述 解决方案
SYSTEM_ERROR 系统异常 重新发起请求
CSTR_QUERY_ERROR 标识详情查询异常 检查请求参数,修改后重新发起请求

学位论文标识修改url接口

请求地址

环境 HTTPS请求地址 Method
正式环境 https://www.cstr.cn/openapi/v2/pid-doi-service/dissertation.update.Url POST
沙盒环境 https://www.cstr.cn/sandbox/openapi/v2/pid-doi-service/dissertation.update.Url POST

公共请求参数

参数 类型 是否必填 最大长度 描述 示例值
clientId String 32 分配给开发者的应用ID 12位长度字符串
secret String 32 秘钥 32位长度字符串

请求参数

{
	"identifier": "注册标识号",
	"url": "新的解析地址"
}

公共响应参数

参数 类型 是否必填 最大长度 描述 示例值
code int - 网关返回状态码 200
message String - 网关返回码描述信息 标识查询失败
timestamp String - 时间戳,参见具体的API接口文档 2019-09-06 10:06:35
data Map - 业务返回数据,参见响应参数 字符串,对象

异常实例

JSON实例

{ "code": 500, "message": "url不能为空", "timestamp": "2019-07-25 11:29:21", "data": null }

业务错误码

错误码 错误描述 解决方案
SYSTEM_ERROR 系统异常 重新发起请求
CSTR_QUERY_ERROR 标识详情查询异常 检查请求参数,修改后重新发起请求

学位论文标识生成接口

请求地址

环境 HTTPS请求地址 Method
正式环境 https://www.cstr.cn/openapi/v2/pid-common-service/encode/dissertation?training=培养单位中文名称&type=学位论文类型&year=2022 GET
沙盒环境 https://www.cstr.cn/sandbox/openapi/v2/pid-common-service/encode/dissertation?training=培养单位中文名称&type=学位论文类型&year=2022 GET

公共请求参数

参数 类型 是否必填 最大长度 描述 示例值
clientId String 32 分配给开发者的应用ID 12位长度字符串
secret String 32 秘钥 32位长度字符串

请求参数 RequestParam传参

参数 类型 是否必填 最大长度 描述 示例值
grant String 128 授予机构中文名称 需在cstr平台进行注册并且分配前缀的机构名称才可以
training String 128 培养单位中文名称 需在cstr平台进行注册并且分配前缀的机构名称才可以
type String 2 学位论文类型 请使用 学位论文类型 中key值
year int 4 发稿年份 2022

公共响应参数

参数 类型 是否必填 最大长度 描述 示例值
code int - 网关返回状态码 200
message String - 网关返回码描述信息 标识查询失败
timestamp String - 时间戳,参见具体的API接口文档 2019-09-06 10:06:35
data Map - 业务返回数据,参见响应参数 字符串,对象

响应参数

请参考注册接口参数详情

响应实例

{"code":200,"message":"success","timestamp":"2022-09-05 17:17:31","data":{"content":"32117.37.01.32002.20200001"}}

测试代码

 public void testQuery() throws IOException {
        String getIdentifier = PidClient.create("clientId", "secret").request(DissertationGetIdentifierRequest.builder().text("授予机构","培养单位", "学位论文类型", 2020)).execute();// year 为发稿年份
        System.out.println(getIdentifier);
    }

异常实例

JSON实例

{ "code": 501, "message": "数据错误", "timestamp": "2019-07-25 11:29:21", "data": null }

业务错误码

错误码 错误描述 解决方案
SYSTEM_ERROR 系统异常 重新发起请求
CSTR_QUERY_ERROR 标识详情查询异常 检查请求参数,修改后重新发起请求
Java
1
https://gitee.com/datapid/pid-sdk-java.git
git@gitee.com:datapid/pid-sdk-java.git
datapid
pid-sdk-java
pid-sdk-java
v2.1.0

搜索帮助