]> BookStack Code Mirror - bookstack/blob - routes/api.php
c809cdb3af11f7cd5e1aee157d21e60d323c260c
[bookstack] / routes / api.php
1 <?php
2
3 /**
4  * Routes for the BookStack API.
5  * Routes have a uri prefix of /api/.
6  * Controllers are all within app/Http/Controllers/Api.
7  */
8
9 use BookStack\Http\Controllers\Api\ApiDocsController;
10 use BookStack\Http\Controllers\Api\AttachmentApiController;
11 use BookStack\Http\Controllers\Api\BookApiController;
12 use BookStack\Http\Controllers\Api\BookExportApiController;
13 use BookStack\Http\Controllers\Api\BookshelfApiController;
14 use BookStack\Http\Controllers\Api\ChapterApiController;
15 use BookStack\Http\Controllers\Api\ChapterExportApiController;
16 use BookStack\Http\Controllers\Api\ContentPermissionApiController;
17 use BookStack\Http\Controllers\Api\ImageGalleryApiController;
18 use BookStack\Http\Controllers\Api\PageApiController;
19 use BookStack\Http\Controllers\Api\PageExportApiController;
20 use BookStack\Http\Controllers\Api\RecycleBinApiController;
21 use BookStack\Http\Controllers\Api\RoleApiController;
22 use BookStack\Http\Controllers\Api\SearchApiController;
23 use BookStack\Http\Controllers\Api\UserApiController;
24 use Illuminate\Support\Facades\Route;
25
26 Route::get('docs.json', [ApiDocsController::class, 'json']);
27
28 Route::get('attachments', [AttachmentApiController::class, 'list']);
29 Route::post('attachments', [AttachmentApiController::class, 'create']);
30 Route::get('attachments/{id}', [AttachmentApiController::class, 'read']);
31 Route::put('attachments/{id}', [AttachmentApiController::class, 'update']);
32 Route::delete('attachments/{id}', [AttachmentApiController::class, 'delete']);
33
34 Route::get('books', [BookApiController::class, 'list']);
35 Route::post('books', [BookApiController::class, 'create']);
36 Route::get('books/{id}', [BookApiController::class, 'read']);
37 Route::put('books/{id}', [BookApiController::class, 'update']);
38 Route::delete('books/{id}', [BookApiController::class, 'delete']);
39
40 Route::get('books/{id}/export/html', [BookExportApiController::class, 'exportHtml']);
41 Route::get('books/{id}/export/pdf', [BookExportApiController::class, 'exportPdf']);
42 Route::get('books/{id}/export/plaintext', [BookExportApiController::class, 'exportPlainText']);
43 Route::get('books/{id}/export/markdown', [BookExportApiController::class, 'exportMarkdown']);
44
45 Route::get('chapters', [ChapterApiController::class, 'list']);
46 Route::post('chapters', [ChapterApiController::class, 'create']);
47 Route::get('chapters/{id}', [ChapterApiController::class, 'read']);
48 Route::put('chapters/{id}', [ChapterApiController::class, 'update']);
49 Route::delete('chapters/{id}', [ChapterApiController::class, 'delete']);
50
51 Route::get('chapters/{id}/export/html', [ChapterExportApiController::class, 'exportHtml']);
52 Route::get('chapters/{id}/export/pdf', [ChapterExportApiController::class, 'exportPdf']);
53 Route::get('chapters/{id}/export/plaintext', [ChapterExportApiController::class, 'exportPlainText']);
54 Route::get('chapters/{id}/export/markdown', [ChapterExportApiController::class, 'exportMarkdown']);
55
56 Route::get('pages', [PageApiController::class, 'list']);
57 Route::post('pages', [PageApiController::class, 'create']);
58 Route::get('pages/{id}', [PageApiController::class, 'read']);
59 Route::put('pages/{id}', [PageApiController::class, 'update']);
60 Route::delete('pages/{id}', [PageApiController::class, 'delete']);
61
62 Route::get('pages/{id}/export/html', [PageExportApiController::class, 'exportHtml']);
63 Route::get('pages/{id}/export/pdf', [PageExportApiController::class, 'exportPdf']);
64 Route::get('pages/{id}/export/plaintext', [PageExportApiController::class, 'exportPlainText']);
65 Route::get('pages/{id}/export/markdown', [PageExportApiController::class, 'exportMarkdown']);
66
67 Route::get('image-gallery', [ImageGalleryApiController::class, 'list']);
68 Route::post('image-gallery', [ImageGalleryApiController::class, 'create']);
69 Route::get('image-gallery/{id}', [ImageGalleryApiController::class, 'read']);
70 Route::put('image-gallery/{id}', [ImageGalleryApiController::class, 'update']);
71 Route::delete('image-gallery/{id}', [ImageGalleryApiController::class, 'delete']);
72
73 Route::get('search', [SearchApiController::class, 'all']);
74
75 Route::get('shelves', [BookshelfApiController::class, 'list']);
76 Route::post('shelves', [BookshelfApiController::class, 'create']);
77 Route::get('shelves/{id}', [BookshelfApiController::class, 'read']);
78 Route::put('shelves/{id}', [BookshelfApiController::class, 'update']);
79 Route::delete('shelves/{id}', [BookshelfApiController::class, 'delete']);
80
81 Route::get('users', [UserApiController::class, 'list']);
82 Route::post('users', [UserApiController::class, 'create']);
83 Route::get('users/{id}', [UserApiController::class, 'read']);
84 Route::put('users/{id}', [UserApiController::class, 'update']);
85 Route::delete('users/{id}', [UserApiController::class, 'delete']);
86
87 Route::get('roles', [RoleApiController::class, 'list']);
88 Route::post('roles', [RoleApiController::class, 'create']);
89 Route::get('roles/{id}', [RoleApiController::class, 'read']);
90 Route::put('roles/{id}', [RoleApiController::class, 'update']);
91 Route::delete('roles/{id}', [RoleApiController::class, 'delete']);
92
93 Route::get('recycle-bin', [RecycleBinApiController::class, 'list']);
94 Route::put('recycle-bin/{deletionId}', [RecycleBinApiController::class, 'restore']);
95 Route::delete('recycle-bin/{deletionId}', [RecycleBinApiController::class, 'destroy']);
96
97 Route::get('content-permissions/{contentType}/{contentId}', [ContentPermissionApiController::class, 'read']);
98 Route::put('content-permissions/{contentType}/{contentId}', [ContentPermissionApiController::class, 'update']);