3 use BookStack\Http\Controllers\Api\ApiDocsController;
4 use BookStack\Http\Controllers\Api\AttachmentApiController;
5 use BookStack\Http\Controllers\Api\BookApiController;
6 use BookStack\Http\Controllers\Api\BookExportApiController;
7 use BookStack\Http\Controllers\Api\BookshelfApiController;
8 use BookStack\Http\Controllers\Api\ChapterApiController;
9 use BookStack\Http\Controllers\Api\ChapterExportApiController;
10 use BookStack\Http\Controllers\Api\PageApiController;
11 use BookStack\Http\Controllers\Api\PageExportApiController;
12 use Illuminate\Support\Facades\Route;
15 * Routes for the BookStack API.
16 * Routes have a uri prefix of /api/.
17 * Controllers are all within app/Http/Controllers/Api.
19 Route::get('docs.json', [ApiDocsController::class, 'json']);
21 Route::get('attachments', [AttachmentApiController::class, 'list']);
22 Route::post('attachments', [AttachmentApiController::class, 'create']);
23 Route::get('attachments/{id}', [AttachmentApiController::class, 'read']);
24 Route::put('attachments/{id}', [AttachmentApiController::class, 'update']);
25 Route::delete('attachments/{id}', [AttachmentApiController::class, 'delete']);
27 Route::get('books', [BookApiController::class, 'list']);
28 Route::post('books', [BookApiController::class, 'create']);
29 Route::get('books/{id}', [BookApiController::class, 'read']);
30 Route::put('books/{id}', [BookApiController::class, 'update']);
31 Route::delete('books/{id}', [BookApiController::class, 'delete']);
33 Route::get('books/{id}/export/html', [BookExportApiController::class, 'exportHtml']);
34 Route::get('books/{id}/export/pdf', [BookExportApiController::class, 'exportPdf']);
35 Route::get('books/{id}/export/plaintext', [BookExportApiController::class, 'exportPlainText']);
36 Route::get('books/{id}/export/markdown', [BookExportApiController::class, 'exportMarkdown']);
38 Route::get('chapters', [ChapterApiController::class, 'list']);
39 Route::post('chapters', [ChapterApiController::class, 'create']);
40 Route::get('chapters/{id}', [ChapterApiController::class, 'read']);
41 Route::put('chapters/{id}', [ChapterApiController::class, 'update']);
42 Route::delete('chapters/{id}', [ChapterApiController::class, 'delete']);
44 Route::get('chapters/{id}/export/html', [ChapterExportApiController::class, 'exportHtml']);
45 Route::get('chapters/{id}/export/pdf', [ChapterExportApiController::class, 'exportPdf']);
46 Route::get('chapters/{id}/export/plaintext', [ChapterExportApiController::class, 'exportPlainText']);
47 Route::get('chapters/{id}/export/markdown', [ChapterExportApiController::class, 'exportMarkdown']);
49 Route::get('pages', [PageApiController::class, 'list']);
50 Route::post('pages', [PageApiController::class, 'create']);
51 Route::get('pages/{id}', [PageApiController::class, 'read']);
52 Route::put('pages/{id}', [PageApiController::class, 'update']);
53 Route::delete('pages/{id}', [PageApiController::class, 'delete']);
55 Route::get('pages/{id}/export/html', [PageExportApiController::class, 'exportHtml']);
56 Route::get('pages/{id}/export/pdf', [PageExportApiController::class, 'exportPdf']);
57 Route::get('pages/{id}/export/plaintext', [PageExportApiController::class, 'exportPlainText']);
58 Route::get('pages/{id}/export/markdown', [PageExportApiController::class, 'exportMarkDown']);
60 Route::get('shelves', [BookshelfApiController::class, 'list']);
61 Route::post('shelves', [BookshelfApiController::class, 'create']);
62 Route::get('shelves/{id}', [BookshelfApiController::class, 'read']);
63 Route::put('shelves/{id}', [BookshelfApiController::class, 'update']);
64 Route::delete('shelves/{id}', [BookshelfApiController::class, 'delete']);