1-2 Récupérer une entrée spécifique
Afin de récupérer un projet spécifique, selon la documentation de Supabase, on peut inclure un paramètre querystring
à la requête:
Clé
: Le nom de la colonneValeur
:eq.[critere-de-recherche]
C'est ce que vous voyez à la ligne mise en surbrillance ici:
curl --get 'https://zjywabthssmxcftqcyyo.supabase.co/rest/v1/projets' \
-H "apikey: SUPABASE_CLIENT_ANON_KEY" \
-H "Authorization: Bearer SUPABASE_CLIENT_ANON_KEY" \
-H "Range: 0-9" \
-d "select=*" \
\
`# Filters` \
-d "column=eq.Equal+to" \
-d "column=gt.Greater+than" \
-d "column=lt.Less+than" \
-d "column=gte.Greater+than+or+equal+to" \
-d "column=lte.Less+than+or+equal+to" \
-d "column=like.*CaseSensitive*" \
-d "column=ilike.*CaseInsensitive*" \
-d "column=is.null" \
-d "column=in.(Array,Values)" \
-d "column=neq.Not+equal+to" \
\
`# Arrays` \
-d "array_column=cs.{array,contains}" \
-d "array_column=cd.{contained,by}" \
\
`# Logical operators` \
-d "column=not.like.Negate+filter" \
-d "or=(some_column.eq.Some+value,other_column.eq.Other+value)"
Ainsi, si on voulait filtrer selon l'identifiant d'un projet, la requête serait
GET https://{id-projet-supabase}.supabase.co/rest/v1/projets?id=eq.{id}
Ainsi, dans notre cas:
id-projet-supabase
est l'id de votre instance Supabasseid
est l'identifiant de l'entrée dans la tableprojets
, donc du projet, à obtenir.
La seule information manquante par rapport à ce que nous avons fait précédemment est celle du id
.
Vous pouvez aller directement dans Supabase dans la colonne id
pour récupérer un id de projet:
Ou encore, à partir de la liste de projets récupérés via l'API et la propriété id
d'un projet:
[
{
"id": 1,
"created_at": "2025-06-06T14:56:28.961561+00:00",
"updated_at": "2025-06-06T14:56:28.961561+00:00",
"nom": "Discreddit",
"description": "Un super projet de session à développer en équipe!",
"image_url": "https://imgur.com/k00Tj9S.png"
},
{
"id": 2,
"created_at": "2025-06-06T14:56:48.988456+00:00",
"updated_at": "2025-06-06T14:56:48.988456+00:00",
"nom": "Lan Party",
"description": "Organisation du Lan Party",
"image_url": null
},
{
"id": 3,
"created_at": "2025-06-06T14:57:08.761115+00:00",
"updated_at": "2025-06-06T14:57:08.761115+00:00",
"nom": "Soirée jeux vidéo",
"description": "Organisation de la soirée jeu vidéo",
"image_url": null
}
]
Créer et exécuter une nouvelle requête
Créons la requête dans Postman pour obtenir une entrée
-
Créez une nouvelle requête Postman
-
Spécifiez
GET
comme actionHTTP
-
Entrez l'URL pour la requête. Par exemple:
https://{id-projet-supabase}.supabase.co/rest/v1/projets
-
Assurez-vous d'entrer votre clé d'API via une en-tête
apiKey
-
Entrez dans la section
params
le règle pour filtrer en fonction duid
de projet que vous voulez récupérer. Par exemple:infoRemarquez que l'URL change! Elle devient
https://zjywabthssmxcftqcyyo.supabase.co/rest/v1/projets?id=eq.1
et un paramètre de typequerystring
a été ajouté à la fin.La section
Params
permet de créer des paramètres d'URL facilement.Dans notre cas:
id
: nom de la colonne à filtrereq.1
: retourner l'entrée pour laquelleid
est égal (eq.
) à1
-
Cliquer sur
Send
-
Vous devriez obtenir un seul projet format
JSON
dans la sectionResponse
![
{
"id": 1,
"created_at": "2025-06-06T14:56:28.961561+00:00",
"updated_at": "2025-06-06T14:56:28.961561+00:00",
"nom": "Discreddit",
"description": "Un super projet de session à développer en équipe!",
"image_url": "https://imgur.com/k00Tj9S.png"
}
]
Par contre, si vous avez un oeil de lynx, vous remarquerez que le retour est un tableau! Ça fonctionne, mais idéalement, on voudrait un objet JSON seul.
Obtenir un objet JSON
Il est possible de préciser à l'API qu'on s'attend à obtenir un seul résultat. Par cela, on peut modifier l'en-tête Accept
pour la suivante:
application/vnd.pgrst.object+json
application/vnd.pgrst.object+json
est un MIME type, soit un type de données. Un peu comme application/pdf
pour un PDF.
vnd.pgrst.object+json
n'est pas un type de données standard, c'est pourquoi on retrouve vnd
au début, pour vendor
.
Pour cela, à partir de l'onglet Headers
, décochez l'option par défaut Accept
et créez-en une supplémentaire avec la valeur désirée.
Réessayez la requête et vous devriez maintenant obtenir un objet plutôt qu'un tableau!
{
"id": 1,
"created_at": "2025-06-06T14:56:28.961561+00:00",
"updated_at": "2025-06-06T14:56:28.961561+00:00",
"nom": "Discreddit",
"description": "Un super projet de session à développer en équipe!",
"image_url": "https://imgur.com/k00Tj9S.png"
}