ダウンロード • ドキュメント • コミュニティ
./daptin
.
. // logs truncated for brevity
.
INFO[2024-10-16 11:08:58] Listening websocket server at ... /live
INFO[2024-10-16 11:08:58] Our admin is [[email protected]]
INFO[2024-10-16 11:08:58] [ProcessId = 86403] Listening at port: :6336
INFO[2024-10-16 11:08:58] Get certificate for [Parths-MacBook-Pro.local]: true
INFO[2024-10-16 11:08:58] Listening at: [:6336]
INFO[2024-10-16 11:08:58] TLS server listening on port :6443
INFO[2024-10-16 11:09:03] Member says: Message < members: Joining from 192.168.0.125: 5336>
サーバーは稼働しています。mysql または postgres を指定しなかったため、sqlite データベースが使用されます。
サインアップ「アクション」API を呼び出して、新しい user_account を作成します
curl ' http://localhost:6333/action/user_account/signup ' -X POST
--data-raw ' {"attributes":{"email":"[email protected]","password":"[email protected]","name":"[email protected]","passwordConfirm":"[email protected]"}} '
新しいインスタンスでは、ゲストによるすべてのアクションの実行が許可されているため、これは表示されません。
[
{
"Attributes" : {
"message" : " http error (403) forbidden and 0 more errors, forbidden " ,
"title" : " failed " ,
"type" : " error "
},
"ResponseType" : " client.notify "
}
]
これを見るべきです
[
{
"ResponseType" : " client.notify " ,
"Attributes" : {
"__type" : " client.notify " ,
"message" : " Sign-up successful. Redirecting to sign in " ,
"title" : " Success " ,
"type" : " success "
}
},
{
"ResponseType" : " client.redirect " ,
"Attributes" : {
"__type" : " client.redirect " ,
"delay" : 2000 ,
"location" : " /auth/signin " ,
"window" : " self "
}
}
]
curl ' http://localhost:6336/action/user_account/signin '
--data-raw ' {"attributes":{"email":"[email protected]","password":"[email protected]"}} '
[
{
" Attributes " : {
" key " : " token " ,
" value " : " eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJlbWFpbCI6ImFydHBhckBnbWFpbC5jb20iLCJleHAiOjE3MjkzMjExMjIsImlhdCI6MTcyOTA2MTkyMiwiaXNzIjoiZGFwdGluLTAxOTIyOCIsImp0aSI6IjAxOTI5NDFmLTI2MGUtN2I0Ni1hMWFlLWYxMGZhZTcwMDE3OSIsIm5hbWUiOiJhcnRwYXJAZ21haWwuY29tIiwibmJmIjoxNzI5MDYxOTIyLCJzdWIiOiIwMTkyMmUxYS1kNWVhLTcxYzktYmQzZS02MTZkMjM3ODBmOTMifQ.H-GLmXCT-o7RxXrjo5Of0K8Nw5mpOOw6jgoXnd5KUxo "
},
" ResponseType " : " client.store.set "
},
{
" Attributes " : {
" key " : " token " ,
" value " : " eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJlbWFpbCI6ImFydHBhckBnbWFpbC5jb20iLCJleHAiOjE3MjkzMjExMjIsImlhdCI6MTcyOTA2MTkyMiwiaXNzIjoiZGFwdGluLTAxOTIyOCIsImp0aSI6IjAxOTI5NDFmLTI2MGUtN2I0Ni1hMWFlLWYxMGZhZTcwMDE3OSIsIm5hbWUiOiJhcnRwYXJAZ21haWwuY29tIiwibmJmIjoxNzI5MDYxOTIyLCJzdWIiOiIwMTkyMmUxYS1kNWVhLTcxYzktYmQzZS02MTZkMjM3ODBmOTMifQ.H-GLmXCT-o7RxXrjo5Of0K8Nw5mpOOw6jgoXnd5KUxo; SameSite=Strict "
},
" ResponseType " : " client.cookie.set "
},
{
" Attributes " : {
" message " : " Logged in " ,
" title " : " Success " ,
" type " : " success "
},
" ResponseType " : " client.notify "
},
{
" Attributes " : {
" delay " : 2000,
" location " : " / " ,
" window " : " self "
},
" ResponseType " : " client.redirect "
}
]
使用します
export TOKEN=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJlbWFpbCI6ImFydHBhckBnbWFpbC5jb20iLCJleHAiOjE3MjkzMjExMjIsImlhdCI6MTcyOTA2MTkyMiwiaXNzIjoiZGFwdGluLTAxOTIyOCIsImp0aSI6IjAxOTI5NDFmLTI2MGUtN2I0Ni1hMWFlLWYxMGZhZTcwMDE3OSIsIm5hbWUiOiJhcnRwYXJAZ21haWwuY29tIiwibmJmIjoxNzI5MDYxOTIyLCJzdWIiOiIwMTkyMmUxYS1kNWVhLTcxYzktYmQzZS02MTZkMjM3ODBmOTMifQ.H-GLmXCT-o7RxXrjo5Of0K8Nw5mpOOw6jgoXnd5KUxo
残りの API 呼び出しについては、これは次のデータを含む JWT トークンです
{
"email" : " [email protected] " , // user email
"exp" : 1729321122 , // token expiry
"iat" : 1729061922 , // token issued at time
"iss" : " daptin-019228 " , // token issuer (your daptin instance)
"jti" : " 0192941f-260e-7b46-a1ae-f10fae700179 " , // unique identifier for this token
"name" : " [email protected] " , // user name
"nbf" : 1729061922 , // token valid not before timestamp
"sub" : " 01922e1a-d5ea-71c9-bd3e-616d23780f93 " // user reference id
}
したがって、アカウントと、そのアカウントとして認証するためのトークンが必要になります。でも必要ですか?いいえ。すべてのユーザー アカウントを取得する呼び出しは、承認なしで機能します。
curl http://localhost:6333/api/user_account
{
"links" : {
"current_page" : 1 ,
"from" : 0 ,
"last_page" : 1 ,
"per_page" : 10 ,
"to" : 10 ,
"total" : 1
},
"data" : [
{
"type" : " user_account " ,
"id" : " 01929429-3d8f-7e53-8f15-a663e05fb01b " ,
"attributes" : {
"__type" : " user_account " ,
"confirmed" : 0 ,
"created_at" : " 2024-10-16T07:09:43.86360642Z " ,
"email" : " [email protected] " ,
"name" : " [email protected] " ,
"password" : " " ,
"permission" : 2097151 ,
"reference_id" : " 01929429-3d8f-7e53-8f15-a663e05fb01b " ,
"updated_at" : " 2024-10-16T07:09:43.863622045Z " ,
"user_account_id" : " 01929429-3d8f-7e53-8f15-a663e05fb01b "
},
"relationships" : { /// ... }
}
]
}
他のすべてのテーブル (サイト、クラウドストア、ドキュメント、ユーザーグループなど) のすべてのデータも同様です。また、更新 API と削除 API を呼び出すこともできます (ここでは示していませんが、プレイ終了後に sqlite データベース ファイルを削除してすべてをリセットしてみることもできます)
最初のユーザーは、開いたままにするか、多層権限を有効にして管理者になることができます。
curl ' http://localhost:6336/action/world/become_an_administrator ' --compressed -X POST
-H " Authorization: Bearer $TOKEN " --data-raw ' {} '
現時点では、他のすべての API はロックダウンされており、管理者、つまりあなただけがアクセスできます。ゲストまたはユーザーに対して、少数または多数のアクションを公開したいと考えています。
...近日更新予定
https://github.com/daptin/daptin-js-client
スターター キット: https://github.com/daptin/vue_typescript_starter_kit
スキーマの定義
探す
IDで取得
作成する
消去
リレーションの削除
リスト関係
ルビー | パイソン | JavaScript |
タイプスクリプト | PHP | ダーツ |
。ネット | ジャワ | iOS |
エリクサー | R | パール |
OpenAPI V3 仕様は、公開されるエンドポイントごとに自動生成されます。これは、さらなるドキュメントとクライアントを生成するために使用できます。
curl http://localhost/apispec.yaml