Descargar • Documentación • Comunidad
./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>
El servidor está activo, se utiliza la base de datos sqlite ya que no especificamos mysql o postgres.
llame a la API de "acción" de registro para crear una nueva cuenta de usuario
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]"}} '
En una instancia nueva, los invitados pueden ejecutar todas las acciones, por lo que no deberías ver esto.
[
{
"Attributes" : {
"message" : " http error (403) forbidden and 0 more errors, forbidden " ,
"title" : " failed " ,
"type" : " error "
},
"ResponseType" : " client.notify "
}
]
deberías ver esto
[
{
"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 "
}
]
usaremos
export TOKEN=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJlbWFpbCI6ImFydHBhckBnbWFpbC5jb20iLCJleHAiOjE3MjkzMjExMjIsImlhdCI6MTcyOTA2MTkyMiwiaXNzIjoiZGFwdGluLTAxOTIyOCIsImp0aSI6IjAxOTI5NDFmLTI2MGUtN2I0Ni1hMWFlLWYxMGZhZTcwMDE3OSIsIm5hbWUiOiJhcnRwYXJAZ21haWwuY29tIiwibmJmIjoxNzI5MDYxOTIyLCJzdWIiOiIwMTkyMmUxYS1kNWVhLTcxYzktYmQzZS02MTZkMjM3ODBmOTMifQ.H-GLmXCT-o7RxXrjo5Of0K8Nw5mpOOw6jgoXnd5KUxo
para el resto de las llamadas a la API. Este es un token JWT con los siguientes datos
{
"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
}
Entonces tienes una cuenta y un token para autenticarte como esa cuenta. ¿Pero lo necesitas? No. La llamada para recuperar todas las cuentas de usuario funciona sin ninguna autorización
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" : { /// ... }
}
]
}
Y lo mismo ocurre con todos los datos de todas las demás tablas (por ejemplo, sitio, almacén_en la nube, documento, grupo de usuarios). Y también puede llamar a actualizar y eliminar API (no se muestra aquí, pero puede intentar eliminar el archivo de base de datos sqlite una vez que haya terminado de jugar para restablecerlo todo)
Como primer usuario, tiene la opción de dejarlo abierto o habilitar el permiso de varios niveles y convertirse en administrador.
curl ' http://localhost:6336/action/world/become_an_administrator ' --compressed -X POST
-H " Authorization: Bearer $TOKEN " --data-raw ' {} '
En este punto, todas las demás API están bloqueadas y solo el administrador, es decir, usted, puede acceder a ellas. Quiere abrir algunas o muchas acciones a invitados o usuarios.
... Se actualizará pronto
https://github.com/daptin/daptin-js-client
Kit de inicio: https://github.com/daptin/vue_typescript_starter_kit
Definir esquema
Encontrar
Obtener por identificación
Crear
Borrar
Eliminar relaciones
Lista de relaciones
Rubí | Pitón | JavaScript |
Mecanografiado | PHP | Dardo |
.NETO | Java | iOS |
Elixir | R | perla |
La especificación OpenAPI V3 se genera automáticamente para cada punto final expuesto. Esto se puede utilizar para generar más documentación y clientes.
curl http://localhost/apispec.yaml