LoginSignup
5
6

More than 5 years have passed since last update.

.NET teratail API Client Library

Posted at

.NET teratail API Client Library

teratail APIの.NET用クライアントライブラリを作ってみた。
teratailApiClient

teratail

teratail

teratailは、日本のエンジニアが集うQ&Aコミュニティサイトです。

teratail API

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 : "");
                });
            }
        }
    }
}
5
6
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
5
6