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>