annict-rs

Annict APIのRustライブラリです

基本情報

カテゴリ
開発者向けライブラリ
URL
github.com

開発メンバー

紙魚 (@totechite)

annict-rs

Build Status Build status crates.io

Annict APIのRustライブラリです

インストール

Cargo.tomlに追記して、

[dependencies]
annis = "0.0.5"

以下をソースコードに置いてください。

extern crate annis;

使い方&仕様例

Annict API 公式ドキュメントライブラリのドキュメントを参考にしてください。
以下にサンプルコードを示します。

認証を行ったのち、/v1/worksにリクエストを送るコードです。

extern crate annis;
use annis::{OAuth, Client , Value, Error };

fn main() -> Result<(), Error> {


	let auth = OAuth::client_id("client_id");
	let url = auth.authorize_url().redirect_uri("https://example.com").scope("read+write").build();

	// -> urlにブラウザアクセスし、認証コードを取得

	let access_token = auth
	.access_token()
	.client_secret("client_secret_key")
	.code("認証コード")
	.build();

        // 取得したアクセストークンを用いて/v1/worksにリクエストを送信
	let client = Client::set_token(access_token);
	let works = annis::works().params(vec![("filter_title", "lain")]);

	let json = client.call(works)?.json::<Value>()?;

	assert_eq!(json["works"][0]["title"], "serial experiments lain".to_string());

        Ok(())
}

認証に必要なリクエストの作成方法を示します。

extern crate annis;
use annis::{OAuth, AuthorizeUri, AccessToken};


	let auth = OAuth::client_id("client_id");

// Get Authorize URL
	let instant = auth.authorize_url().build();

	let manual = AuthorizeUrl{
			client_id: "client_id".to_string(),
			redirect_uri: "urn:ietf:wg:oauth:2.0:oob".to_string(),
			scope: "read".to_string()
		}.build();

	assert_eq!(instant, manual);


// Get AccessToken
	let instant = auth
	.access_token()
	.client_secret("client_secret_key")
	.code("certification code")
	.build();

    let manual = AccessToken{
    		client_id: "client_id".to_string(),
    		client_secret: "client_secret_key".to_string(),
    		code: "certification code".to_string(),
    		redirect_uri: "urn:ietf:wg:oauth:2.0:oob".into()
    	}.build();

	assert_eq!(instant, manual);