Skip to content

Latest commit

 

History

History
198 lines (148 loc) · 6.22 KB

README.md

File metadata and controls

198 lines (148 loc) · 6.22 KB

API リファレンス

目次

Web Finger API

/.well-known/webfinger?resource={resource}

指定されたリソースの情報を Web Finger 形式で返します。

Activity Streams API

/actor

アプリケーションの情報を Activity Streams 形式で返します。
The Security Vocabulary の一部を実装します。

Check API

/check/[{username}/][?format=sse|json]

指定したユーザー名のユーザーが登録した URL のリダイレクト状況を取得します。
ユーザー名を省略した場合はすべてのユーザーの情報を返します。
ユーザー名が存在しない場合は 404 が返ります。

レスポンスは指定された形式で返され、省略した場合は sse が指定されます。

sse

Server-Sent Events によってイベントストリームとして返されます。

以下にストリームの例を示します。

event: initialize
data: {"count":30}

event: response
data: {"homo":{"screen_name":"@[email protected]","service":"mastodon","url":"https:\/\/homo.chitoku.jp","display_url":"homo.chitoku.jp","icon":"https:\/\/example.com\/icon.png","secure":true},"status":"OK","code":"302 Found","ip":"2001:db8::4545:4545","url":"https:\/\/homo.chitoku.jp","secure":true,"duration":0.45,"error":null}

eventinitialize の場合は datacount を持つ JSON データです。
eventresponse の場合は data は以下に示す JSON データです。

json

JSON によって返されます。

[
    {
        // (object) ホモ
        "homo": {
            // (string) スクリーンネーム
            // X の場合は @ を除くユーザー名
            // Mastodon の場合は @[email protected] 表記のユーザー名
            "screen_name": "@[email protected]",

            // (string) サービス
            // twitter または mastodon
            "service": "mastodon",

            // (string) URL
            "url": "https://homo.chitoku.jp",

            // (string) 表示用の URL
            "display_url": "homo.chitoku.jp",

            // (string) アイコンの URL
            "icon": "https://example.com/icon.png",

            // (bool) HTTPS 接続かどうかを示す値
            "secure": true
        },

        // (string) リダイレクト状況を示す値
        // OK: リダイレクト設定済
        // WRONG: リダイレクト未設定
        // CONTAINS: ページ内に URL を含む
        // ERROR: 接続失敗/タイムアウト
        "status": "OK",

        // (string|null) 直前の接続先の HTTP レスポンスコード
        "code": "302 Found",

        // (string|null) 直前の接続先の HTTP バージョン(1.0, 1.1, 2, 3)
        "http": "2",

        // (array) 直前の接続先の TLS 証明書チェイン
        "certificates": [
            {
                "subject": "CN = chitoku.jp",
                "issuer": "C = US, O = Let's Encrypt, CN = R3",
                "subjectAlternativeName": ["*.chitoku.jp", "chitoku.jp"],
                "notBefore": "Nov 20 10:24:37 2022 GMT",
                "notAfter": "Feb 18 10:24:36 2023 GMT"
            },
            {
                "subject": "C = US, O = Let's Encrypt, CN = R3",
                "issuer": "C = US, O = Internet Security Research Group, CN = ISRG Root X1",
                "subjectAlternativeName": [],
                "notBefore": "Sep  4 00:00:00 2020 GMT",
                "notAfter": "Sep 15 16:00:00 2025 GMT"
            },
            {
                "subject": "C = US, O = Internet Security Research Group, CN = ISRG Root X1",
                "issuer": "O = Digital Signature Trust Co., CN = DST Root CA X3",
                "subjectAlternativeName": [],
                "notBefore": "Jan 20 19:14:03 2021 GMT",
                "notAfter": "Sep 30 18:14:03 2024 GMT"
            }
        ],

        // (string|null) 直前の接続先の IPv4 または IPv6(サポートしている場合)アドレス
        "ip": "2001:db8::4545:4545",

        // (string) 直前の接続先の URL
        "url": "https://homo.chitoku.jp",

        // (bool) HTTPS 接続かどうかを示す値
        "secure": true,

        // (number) リダイレクトにかかった時間 (s)
        "duration": 0.0,

        // (string|null) エラーメッセージ
        "error": "SSL: no alternative certificate subject name matches target host name 'homo.chitoku.jp'"
    }
]

List API

/list/[{username}/][?format=json|sql]

指定したユーザー名のユーザーが登録した URL の一覧を取得します。
ユーザー名を省略した場合はすべてのユーザーの情報を返します。
ユーザー名が存在しない場合は 404 が返ります。

レスポンスは指定された形式で返され、省略した場合は json が指定されます。

json

[
    {
        // (string) スクリーンネーム
        // X の場合は @ を除くユーザー名
        // Mastodon の場合は @[email protected] 表記のユーザー名
        "screen_name": "",

        // (string) サービス
        // twitter または mastodon
        "service": "",

        // (string) URL
        "url": "",

        // (string) 表示用の URL
        "display_url": "",

        // (bool) HTTPS 接続かどうかを示す値
        "secure": true
    }
]

sql

-- 各カラムの値は JSON と同様
insert into "users" ("screen_name", "service", "url") values ('', '', '');

Badge API

/badge/[{status}/]

指定したステータスを持つホストの数を示すバッジを取得します。
バッジは Shields.io によって生成される画像を返します。
ステータスを省略した場合は登録されているホストの数を返します。