Skip to content

APIでリクエストするフィールドを限定できるようにする(軽量化) #11029

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
kakkokari-gtyih opened this issue Jun 18, 2023 · 7 comments
Labels
✨Feature This adds/improves/enhances a feature

Comments

@kakkokari-gtyih
Copy link
Contributor

kakkokari-gtyih commented Jun 18, 2023

Summary

APIリクエストにて、取りたいフィールドを限定できるようにすることで、レスポンスを小さく、クライアント側の処理を軽くできるようにする

とくにPlayとかでは、現状Playのリストを取りたいだけのユースケースであっても、AiScript本体も同時に帰ってくるので、この機能の実装によりかなりの軽量化が期待できる

実装例(flash/featured

Payload

{
    "limit": 2,
    "fields": [
        "id",
        "title",
        "summary",
        "user"
    ]
}

Response

[
    {
        "id": "9b3ug9hsty",
        "user": {
            "id": "9b261e6zr5",
            "name": "まぐかっぷ",
            "username": "mugcAp",
            "host": null,
            "avatarUrl": "https://nos3.arkjp.net/avatar.webp?url=https%3A%2F%2Fs3.arkjp.net%2Fmisskey%2Fwebpublic-ede2926a-6b0c-4058-ac59-22241cb2309d.jpg&avatar=1",
            "avatarBlurhash": "e8A,Rl%M0eD*?HxZRkxtofIo9tRl-oxuD*~Wt70LIV-p%2f7IoR%s:",
            "isBot": false,
            "isCat": false,
            "emojis": {},
            "onlineStatus": "active",
            "badgeRoles": []
        },
        "title": "サバイバルゲーム",
        "summary": "探索して食べ物集める。"
    },
    {
        "id": "9czhc250sz",
        "user": {
            "id": "9bxq81zkcy",
            "name": ":blobcatartist:蒼樹甘楽:puddingified_verify:",
            "username": "Gigantic_Thor",
            "host": null,
            "avatarUrl": "https://nos3.arkjp.net/avatar.webp?url=https%3A%2F%2Fs3.arkjp.net%2Fmisskey%2Fb4169ef1-da44-407a-b128-d10dd6282495.gif&avatar=1",
            "avatarBlurhash": "eANK@;-=o#.AMwt6RiogRit8tSf6aeV?xvt7WAyEx^aeogWAt8tSkC",
            "isBot": false,
            "isCat": true,
            "emojis": {},
            "onlineStatus": "online",
            "badgeRoles": [
                {
                    "name": "Misskey Supporter",
                    "iconUrl": "https://s3.arkjp.net/misskey/dab4e89c-4ed1-4c06-918d-441db61dabaf.png",
                    "displayOrder": 10
                },
                {
                    "name": "Patreon Supporter",
                    "iconUrl": "https://s3.arkjp.net/misskey/c501ecfd-2bc3-4c44-a6da-fddb57e12126.png",
                    "displayOrder": 10
                }
            ]
        },
        "title": "1日1回パンケーキチャレンジ",
        "summary": "blobにおおきなパンケーキをごちそうしよう!"
    }
]
@kakkokari-gtyih kakkokari-gtyih added the ✨Feature This adds/improves/enhances a feature label Jun 18, 2023
@syuilo
Copy link
Member

syuilo commented Jun 18, 2023

Related #4635

@pantasystem
Copy link

こちらのフィールドの属性を未指定にした場合どうなることが想定されているのでしょうか?…
後方互換性などがどうなるのか気になりました。

@kakkokari-gtyih
Copy link
Contributor Author

kakkokari-gtyih commented Jun 18, 2023

こちらのフィールドの属性を未指定にした場合どうなることが想定されているのでしょうか?… 後方互換性などがどうなるのか気になりました。

@pantasystem 未指定で全フィールドが出る(現状と変わらない)を想定していますので後方互換性は問題ないかと

@kakkokari-gtyih
Copy link
Contributor Author

実際にやってみた kakkokari-gtyih@fe6f91b

@Sayamame-beans
Copy link
Member

BotなどがMisskey APIを利用する際にも、特定のフィールドの情報以外要らないようなケースはありそうなので、出番自体はありそうですね

@fruitriin
Copy link
Contributor

SQL的に考えると、joinするテーブルの数が減るなら効果がありそう
現状遅いのか?どれだけ早くなるのか?それをフィールドの多いのと少ないのと両方管理するめんどくささを上回るか?というバランスがとれてれば非常に良さそう

@samunohito
Copy link
Member

v2として作るのが良いと思います。Twitterもv2から似たような仕組みが備わったと記憶しています

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
✨Feature This adds/improves/enhances a feature
Projects
Development

No branches or pull requests

6 participants