다운로드 • 문서 • 커뮤니티
./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 데이터베이스가 사용됩니다.
새로운 user_account를 생성하려면 가입 "action" API를 호출하세요.
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" : { /// ... }
}
]
}
다른 모든 테이블(예: 사이트, cloud_store, 문서, 사용자 그룹)의 모든 데이터도 마찬가지입니다. 업데이트 및 삭제 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별 가져오기
만들다
삭제
관계 삭제
목록 관계
루비 | 파이썬 | 자바스크립트 |
타이프스크립트 | PHP | 다트 |
.그물 | 자바 | iOS |
엘릭서 | 아르 자형 | 펄 |
OpenAPI V3 사양은 노출된 각 엔드포인트에 대해 자동 생성됩니다. 이는 추가 문서와 클라이언트를 생성하는 데 사용될 수 있습니다.
curl http://localhost/apispec.yaml