.NET teratail API Client Library
teratail APIの.NET用クライアントライブラリを作ってみた。
teratailApiClient
teratail
teratailは、日本のエンジニアが集うQ&Aコミュニティサイトです。
teratail API
teratail APIは、teratailで使われている質問や回答、ユーザー、タグなどの情報を利用するためのWeb APIです。
APIドキュメント : teratail API v1.0
Client Library
teratailApiClient
APIのクライアントライブラリを作るのは初めてなのでおかしな作りになっているところが多数あるかも。
ご指摘お願いします。
ハマりどころ
退会済み、ゲストユーザはjsonにuserプロパティが現れないのでライブラリ側ではnullとする。
今後
ちょいワケありでWebClientでAPIにアクセスしてるけどHttpClientに置き換えたい。
そして、async/awaitで非同期にしたい。
例外はどう扱えばいいんだろ
サンプル
未回答の質問をリストアップ(タイトルと質問者)
Program.cs
using System;
using System.Linq;
using TeratailApiClient;
using TeratailApiClient.Common;
namespace SearchTeratail
{
class Program
{
static void Main(string[] args)
{
var tera = new TeratailApi();
var q = tera.GetQuestionList(10000);
while (q.Meta.HasNext())
{
q = tera.GetQuestionList(10000, q.Meta.Page + 1);
q.Questions.Where(x => x.CountReply == 0).ToList().ForEach(x =>
{
Console.WriteLine(x.Title);
Console.WriteLine(x.User != null ? x.User.DisplayName : "");
});
}
}
}
}