Pas besoin de prendre TypeScript tout de suite, mais il va falloir que tu finissent par te familiariser avec ça puisque ça représente pas mal l’avenir de JavaScript!
Lorsque tu créer ta « collection » dans Strapi, ça créer l’endpoint automtiquement.
Exemple, voici ma collection « Studio »:
Et si je visite https://admin.lesbunkers.com/api/studios:
"data": [
{
"id": 1,
"attributes": {
"createdAt": "2022-11-12T16:26:20.147Z",
"updatedAt": "2022-11-12T18:16:56.726Z",
"publishedAt": "2022-11-12T16:33:39.460Z",
"Nicename": "Bunker Mtl",
"slug": "bunker-mtl"
}
},
{
"id": 2,
"attributes": {
"createdAt": "2022-11-12T16:27:29.185Z",
"updatedAt": "2022-11-12T18:18:17.043Z",
"publishedAt": "2022-11-12T16:33:43.979Z",
"Nicename": "Bunker de Trois-Rivières",
"slug": "bunker-3r"
}
},
{
"id": 3,
"attributes": {
"createdAt": "2022-11-12T16:28:28.040Z",
"updatedAt": "2022-11-12T18:18:45.665Z",
"publishedAt": "2022-11-12T16:33:47.762Z",
"Nicename": "Bunker de Québec",
"slug": "bunker-qc"
}
},
{
"id": 4,
"attributes": {
"createdAt": "2022-11-12T16:28:46.745Z",
"updatedAt": "2023-01-11T21:30:42.029Z",
"publishedAt": "2023-01-11T21:30:42.006Z",
"Nicename": "Bunker de Sherbrooke",
"slug": "bunker-sherby"
}
}
],
"meta": {
"pagination": { "page": 1, "pageSize": 25, "pageCount": 1, "total": 4 }
}
}
Ça se peut que tu aies une erreur si ta route est protégée. Tu peux aller rendre tes routes publiques quand tu vas dans « Settings » > « Roles » > « Public »:
Par contre, tu n’as pas besoin de faire ça pour l’authentication.
Dans ta page de login, tu devrais avoir du code qui ressemble à ça:
<script setup>
const { login, register } = useStrapiAuth()
const userData = ref( {
email: null,
first_name: null,
last_name: null,
password: null,
validate_password: "",
} )
const checkPassword = async () => {
loading.value = true
try {
await login( { identifier: userData.value.email, password: userData.value.password } )
layout.dialog.status = false
let path = "/"
if(route.query.path) path = route.query.path
navigateTo(path)
} catch ( e ) {
wrongPassword.value = true
loading.value = false
error.value = e.error.message
}
}
const createAccount = async () => {
try {
await register( userData.value )
navigateTo( '/' )
} catch ( e ) {
accountNumber.value++
setUsername()
}
}
</script>