5个版本 (2个稳定版)
1.1.0 | 2024年7月3日 |
---|---|
1.0.0 | 2024年6月7日 |
0.1.3 | 2024年6月7日 |
0.1.1 | 2024年6月7日 |
0.1.0 | 2023年6月30日 |
在 HTTP客户端 中排名 69
每月下载量 65
62KB
919 行
core_api_client - CORE API Rust客户端
一个用于与CORE交互的Rust库,该服务提供访问来自数千个数据提供者的研究论文元数据和全文。
目录
简介
CORE API Rust客户端库允许轻松与CORE API交互,这是一个独特的实时访问大量元数据和全文研究论文的服务。
特性
- 获取研究论文的元数据
- 下载研究论文的全文
- 实时访问CORE的持续增长语料库
安装
要将库添加到您的项目,请在您的Cargo.toml中添加以下内容:
[dependencies]
core_api_client = "1.1.0"
然后运行 cargo build
以下载和编译库。
文档
您可以在这里找到完整的文档。
示例
工作
根据查询在API上执行搜索。这些是表示研究作品的实体,例如研究文章、论文等。总共是一个去重并丰富的记录版本。
use core_api_client::FilterOperator;
use core_api_client::Api;
let api = Api::from("API_KEY");
let query = api.paged_search(10, 0)
.and(FilterOperator::Exists("doi"))
.and(FilterOperator::Bigger("citationCount", 20));
match api.search_works(query) {
Ok(data) => println!("{:#?}", data),
Err(e) => println!("{:#?}", e),
};
数据提供者
根据查询在API上执行搜索。它为您提供访问向CORE提供数据的实体集合。它包含存储库(机构性和学科性的)、预印本服务器、期刊和出版社。
use core_api_client::FilterOperator;
use core_api_client::Api;
let api = Api::from("API_KEY");
let query = api.paged_search(10, 0)
.and(FilterOperator::Exists("software"))
.and(FilterOperator::HasValue("type", "JOURNAL"));
match api.search_data_providers(query) {
Ok(data) => println!("{:#?}", data),
Err(e) => println!("{:#?}", e),
};
使用提供的提供者标识符从CORE获取特定数据提供者。该函数利用CORE API使用其标识符获取数据提供者详细信息的能力。标识符可以是:
- CORE的数据提供者标识符。
- OpenDOAR的标识符,以"opendoar:"(例如,“opendoar:123”)为前缀。调用此函数将对CORE API执行查询,并返回一个包装在
ApiResponse
中的结果。
id
:数据提供者的标识符。可以是CORE数据提供者标识符(整数)或以“opendoar:”为前缀的OpenDOAR标识符。
use core_api_client::FilterOperator;
use core_api_client::Api;
let api = Api::from("API_KEY");
match api.get_data_provider(86) {
Ok(data) => println!("{:#?}", data),
Err(e) => println!("{:#?}", e),
};
match api.get_data_provider("opendoar:300") {
Ok(data) => println!("{:#?}", data),
Err(e) => println!("{:#?}", e),
};
期刊
根据查询在API上执行期刊搜索。该数据集包含CORE收藏中包含的所有期刊标题。此外,您还可以搜索和检索任何期刊,即使它不是CORE数据提供者。
use core_api_client::FilterOperator;
use core_api_client::Api;
let api = Api::from("API_KEY");
let query = api.paged_search(10, 0)
.and(FilterOperator::Eq("publisher", "OJS"));
match api.search_journals(query) {
Ok(data) => println!("{:#?}", data),
Err(e) => println!("{:#?}", e),
};
使用提供的输出ID从CORE获取单个输出。
id
- 在CORE中的期刊ID。使用issn:ISSN可以通过ISSN而不是CORE标识符进行搜索。
use core_api_client::Api;
let api = Api::from("API_KEY");
match api.get_journal("issn:1179-1497") {
Ok(data) => println!("{:#?}", data),
Err(e) => println!("{:#?}", e),
};
输出
根据查询在API上执行输出(作品)搜索。输出是数据提供者中作品的表示。数据未进行丰富,并且与从数据提供者收集的内容完全一致。
use core_api_client::FilterOperator;
use core_api_client::Api;
let api = Api::from("API_KEY");
let query = api.paged_search(10, 0)
.and(FilterOperator::Eq("publisher", "OJS"));
match api.search_outputs(query) {
Ok(data) => println!("{:#?}", data),
Err(e) => println!("{:#?}", e),
};
使用提供的输出ID从CORE获取单个输出。
id
- 要获取的输出的CORE ID。
use core_api_client::Api;
let api = Api::from("API_KEY");
match api.get_output(0) {
Ok(data) => println!("{:#?}", data),
Err(e) => println!("{:#?}", e),
};
贡献
我们非常希望您为core_api_client
做出贡献,并帮助使其比今天更好!作为贡献者,以下是我们要您遵循的指南
问题和错误
如果您在源代码中找到错误或在文档中找到错误,您可以通过向core_api_client GitHub仓库提交问题来帮助我们。更好的是,您可以提交一个包含修复的Pull Request。
功能请求
您还可以通过向我们的GitHub仓库提交问题来请求新功能。如果您想实现一个新功能,请首先提交一个包含您工作建议的问题,以确保我们可以使用它。
拉取请求
我们积极欢迎您的拉取请求。以下是快速指南
- 从
main
分支上分叉仓库并创建您的分支。 - 如果您已添加需要测试的代码,请添加测试。
- 如果您已更改API,请更新文档。
- 确保测试套件通过。
- 确保您的代码通过lint。
- 提交拉取请求!
提交信息
请遵循简单的提交信息规则:保持简短但具有表达性。提交信息的首行应少于50个字符,并以大写字母开头。如果需要,之后应跟一个空行,然后是一个更详细的说明。
许可
本项目采用MIT许可协议。有关详细信息,请参阅LICENSE文件。
依赖关系
~5–17MB
~248K SLoC