Listing Subjects¶
This guide shows how to list the existing subjects from EventSourcingDB using its HTTP API. You'll learn how to list either all or a desired subset of the existing subjects.
Listing All Subjects¶
The simplest case is listing all subjects for which events have been stored. To do this, send an HTTP request using POST to the /api/v1/read-subjects endpoint:
curl \
-i \
-X POST \
-H "authorization: Bearer <API_TOKEN>" \
-H "content-type: application/json" \
-d '{"baseSubject": "/"}' \
http://localhost:3000/api/v1/read-subjects
If everything worked as expected, the server will respond with HTTP status code 200 OK:
The response body will then contain a list of all existing subjects. If you've followed the steps in Writing Events, you should see the following three subjects:
{
"type": "subject",
"payload": {
"subject": "/"
}
}
{
"type": "subject",
"payload": {
"subject": "/books"
}
}
{
"type": "subject",
"payload": {
"subject": "/books/42"
}
}
In reality, the output will look slightly different – the subjects are returned as compact NDJSON, with each subject occupying a single line.
Listing a Specific Branch Only¶
Sometimes you don't need all subjects – listing just a single branch is sufficient. To do this, set the baseSubject parameter to the desired root:
curl \
-i \
-X POST \
-H "authorization: Bearer <API_TOKEN>" \
-H "content-type: application/json" \
-d '{"baseSubject": "/books"}' \
http://localhost:3000/api/v1/read-subjects
In this case, only the subjects located directly below /books will be returned.