LoginSignup
23
19

More than 5 years have passed since last update.

Qiita API Java ラッパーライブラリを作りました!

Last updated at Posted at 2012-10-22

qiita4j

Qiita API を叩くための Java ラッパーライブラリを作成しました。
2012/10/16 時点で API ドキュメントに記載されている全 API に対応しています。

【2012/10/18 追記】ページネーションに対応しました。

【2012/10/22 追記】Maven リポジトリを作成して公開しました。

使い方

トークンの取得

QiitaClient client = new QiitaClient();
TokenInfo tokenInfo = client.authorize(new AuthRequest(<ユーザー名>, <パスワード>));
String token = tokenInfo.getToken();

トークンの設定

QiitaClient client = new QiitaClient(<トークン>);

または

QiitaClient client = new QiitaClient();
client.setToken(<トークン>);

Qiita API の実行

QiitaClient のメソッドを使用して実行します。

残りリクエスト可能数とRate Limit取得

RateLimit rateLimit = client.getRateLimit();

リクエストユーザーの情報取得

UserInfo ownInfo = client.getOwnInfo();

特定ユーザーの情報取得

UserInfo userInfo = client.getUserInfo(<ユーザー名>);

特定ユーザーの投稿取得

PageableResponse<ItemInfo> userItemsPage = client.getUserItems(<ユーザー名>);
ItemInfo[] userItems = userItemsPage.getContents();

特定ユーザーのストックした投稿取得

PageableResponse<ItemInfo> userStockItemsPage = client.getUserStocks(<ユーザー名>);
ItemInfo[] userStockItems = userStockItemsPage.getContents();

特定ユーザーのフォローしているユーザー取得

PageableResponse<User> followingUsersPage = client.getFollowingUsers(<ユーザー名>);
User[] followingUsers = followingUsersPage.getContents();

特定ユーザーのフォローしているタグ取得

PageableResponse<TagInfo> followingTagsPage = client.getFollowingTags(<ユーザー名>);
TagInfo[] followingTags = followingTagsPage.getContents();

特定タグの投稿取得

PageableResponse<ItemInfo> tagItemsPage = client.getTagItems(<タグ名>);
ItemInfo[] tagItems = tagItemsPage.getContents();

タグ一覧取得

PageableResponse<TagInfo> tagsPage = client.getTags();
TagInfo[] tags = tagsPage.getContents();

検索結果取得

PageableResponse<ItemInfo> searchResultItemsPage = client.searchItems(new SearchRequest(<検索文字列(複数指定可)>));
ItemInfo[] searchResultItems = searchResultItemsPage.getContents();

新着投稿の取得

PageableResponse<ItemInfo> newItemsPage = client.getNewItems();
ItemInfo[] newItems = newItemsPage.getContents();

自分のストックした投稿の取得

PageableResponse<ItemInfo> ownStockItemsPage = client.getOwnStocks();
ItemInfo[] ownStockItems = ownStockItemsPage.getContents();

投稿の実行

ItemRequest createItem = new ItemRequest();
ItemInfo createResult = client.createItem(createItem);

投稿の更新

ItemRequest updateItem = new ItemRequest();
ItemInfo updateResult = client.updateItem(<UUID>, updateItem);

投稿の削除

client.deleteItem(<UUID>);

特定の投稿取得

ItemDetail detail = client.getSpecificItem(<UUID>);

投稿のストック

client.stockItem(<UUID>);

投稿のストック解除

client.unstockItem(<UUID>);

ページネーション

取得件数の指定

client.setPerPage(50);

ページング

PageableResponse<ItemInfo> userItemsPage = client.getUserItems(<ユーザー名>);

PageableResponse<ItemInfo> firstPage = userItemsPage.getFirst();
ItemInfo[] firstItems = firstPage.getContents();

PageableResponse<ItemInfo> prevPage = userItemsPage.getPrev();
ItemInfo[] prevItems = prevPage.getContents();

PageableResponse<ItemInfo> nextPage = userItemsPage.getNext();
ItemInfo[] nextItems = nextPage.getContents();

PageableResponse<ItemInfo> lastPage = userItemsPage.getLast();
ItemInfo[] lastItems = lastPage.getContents();

Maven Repository

<repositories>
  <repository>
    <id>com.zaneli</id>
    <name>Zaneli Repository</name>
    <url>http://www.zaneli.com/repositories/snapshots/</url>
  </repository>
</repositories>

<dependencies>
  <dependency>
    <groupId>com.zaneli</groupId>
    <artifactId>qiita4j</artifactId>
    <version>0.0.1-SNAPSHOT</version>
  </dependency>
</dependencies>
23
19
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
23
19