diff --git a/app/structures/collection/page.mdx b/app/structures/collection/page.mdx new file mode 100644 index 0000000..824a331 --- /dev/null +++ b/app/structures/collection/page.mdx @@ -0,0 +1,74 @@ +export const metadata = { + title: 'Collection', + description: 'Definition of the Collection structure', +} + +# Collection + +Collections are a way to represent paginated groups of entities. They are used everywhere lists of entities can be found, such as a user's outbox. {{ className: 'lead' }} + +Pages should be limited to a reasonable number of entities, such as 20 or 80. + +## Entity Definition + + + + + + Author of the collection. Usually the user who owns the collection. Can be the server actor. + + + URI to the first page of the collection. Query parameters are allowed. + + + URI to the last page of the collection. Query parameters are allowed. + + If the collection only has one page, this should be the same as `first`. + + + Total number of entities in the collection, across all pages. + + + URI to the next page of the collection. Query parameters are allowed. + + If there is no next page, this should be `null`. + + + URI to the previous page of the collection. Query parameters are allowed. + + If there is no previous page, this should be `null`. + + + Collection contents. Must be an array of entities. + + + + + + + ```jsonc {{ 'title': 'Example Collection' }} + { + "author": "https://social.lysand.org/users/018ec082-0ae1-761c-b2c5-22275a611771", + "first": "https://social.lysand.org/users/018ec082-0ae1-761c-b2c5-22275a611771/outbox?page=1", + "last": "https://social.lysand.org/users/018ec082-0ae1-761c-b2c5-22275a611771/outbox?page=3", + "total": 46, + "next": "https://social.lysand.org/users/018ec082-0ae1-761c-b2c5-22275a611771/outbox?page=2", + "prev": null, + "items": [ + { + "id": "456df8ed-daf1-4062-abab-491071c7b8dd", + "type": "Note", + "uri": "https://social.lysand.org/notes/456df8ed-daf1-4062-abab-491071c7b8dd", + "created_at": "2024-04-09T01:38:51.743Z", + "content": { + "text/plain": { + "content": "Hello, world!" + } + } + } + ] + } + ``` + + + \ No newline at end of file