mirror of
https://github.com/BookStackApp/BookStack.git
synced 2026-02-13 19:06:31 +03:00
Closed
opened 2026-02-05 10:19:59 +03:00 by OVERLORD
·
0 comments
No Branch/Tag Specified
development
l10n_development
release
v25-12
llm_only
vectors
v25-11
docker_env
drawio_rendering
user_permissions
ldap_host_failover
svg_image
prosemirror
captcha_example
fix/video-export
v25.12.3
v25.12.2
v25.12.1
v25.12
v25.11.6
v25.11.5
v25.11.4
v24.11.4
v25.11.3
v25.11.2
v25.11.1
v25.11
v25.07.3
v25.07.2
v25.07.1
v25.07
v25.05.2
v25.05.1
v25.05
v25.02.5
v25.02.4
v25.02.3
v25.02.2
v25.02.1
v25.02
v24.12.1
v24.12
v24.10.3
v24.10.2
v24.10.1
v24.10
v24.05.4
v24.05.3
v24.05.2
v24.05.1
v24.05
v24.02.3
v24.02.2
v24.02.1
v24.02
v23.12.3
v23.12.2
v23.12.1
v23.12
v23.10.4
v23.10.3
v23.10.2
v23.10.1
v23.10
v23.08.3
v23.08.2
v23.08.1
v23.08
v23.06.2
v23.06.1
v23.06
v23.05.2
v23.05.1
v23.05
v23.02.3
v23.02.2
v23.02.1
v23.02
v23.01.1
v23.01
v22.11.1
v22.11
v22.10.2
v22.10.1
v22.10
v22.09.1
v22.09
v22.07.3
v22.07.2
v22.07.1
v22.07
v22.06.2
v22.06.1
v22.06
v22.04.2
v22.04.1
v22.04
v22.03.1
v22.03
v22.02.3
v22.02.2
v22.02.1
v22.02
v21.12.5
v21.12.4
v21.12.3
v21.12.2
v21.12.1
v21.12
v21.11.3
v21.11.2
v21.11.1
v21.11
v21.10.3
v21.10.2
v21.10.1
v21.10
v21.08.6
v21.08.5
v21.08.4
v21.08.3
v21.08.2
v21.08.1
v21.08
v21.05.4
v21.05.3
v21.05.2
v21.05.1
v21.05
v21.04.6
v21.04.5
v21.04.4
v21.04.3
v21.04.2
v21.04.1
v21.04
v0.31.8
v0.31.7
v0.31.6
v0.31.5
v0.31.4
v0.31.3
v0.31.2
v0.31.1
v0.31.0
v0.30.7
v0.30.6
v0.30.5
v0.30.4
v0.30.3
v0.30.2
v0.30.1
v0.30.0
v0.29.3
v0.29.2
v0.29.1
v0.29.0
v0.28.3
v0.28.2
v0.28.1
v0.28.0
v0.27.5
v0.27.4
v0.27.3
v0.27.2
v0.27.1
v0.27
v0.26.4
v0.26.3
v0.26.2
v0.26.1
v0.26.0
v0.25.5
v0.25.4
v0.25.3
v0.25.2
v0.25.1
v0.25.0
v0.24.3
v0.24.2
v0.24.1
v0.24.0
v0.23.2
v0.23.1
v0.23.0
v0.22.0
v0.21.0
v0.20.3
v0.20.2
v0.20.1
v0.20.0
v0.19.0
v0.18.5
v0.18.4
v0.18.3
v0.18.2
v0.18.1
v0.18.0
v0.17.4
v0.17.3
v0.17.2
v0.17.1
v0.17.0
v0.16.3
v0.16.2
v0.16.1
v0.16.0
v0.15.3
v0.15.2
v0.15.1
v0.15.0
v0.14.3
v0.14.2
v0.14.1
v0.14.0
v0.13.1
v0.13.0
v0.12.2
v0.12.1
v0.12.0
v0.11.2
v0.11.1
v0.11.0
v0.10.0
v0.9.3
v0.9.2
v0.9.1
v0.9.0
v0.8.2
v0.8.1
v0.8.0
v0.7.6
v0.7.5
v0.7.4
v0.7.3
0.7.2
v.0.7.1
v0.7.0
v0.6.3
v0.6.2
v0.6.1
v0.6.0
v0.5.0
Labels
Clear labels
🎨 Design
📖 Docs Update
🐛 Bug
🐛 Bug
:cat2:🐈 Possible duplicate
💿 Database
☕ Open to discussion
💻 Front-End
🐕 Support
🚪 Authentication
🌍 Translations
🔌 API Task
🏭 Back-End
⛲ Upstream
🔨 Feature Request
🛠️ Enhancement
🛠️ Enhancement
🛠️ Enhancement
❤️ Happy feedback
🔒 Security
🔍 Pending Validation
💆 UX
📝 WYSIWYG Editor
🌔 Out of scope
🔩 API Request
:octocat: Admin/Meta
🖌️ View Customization
❓ Question
🚀 Priority
🛡️ Blocked
🚚 Export System
♿ A11y
🔧 Maintenance
> Markdown Editor
pull-request
Mirrored from GitHub Pull Request
No Label
pull-request
Milestone
No items
No Milestone
Projects
Clear projects
No project
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: starred/BookStack#5902
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
📋 Pull Request Information
Original PR: https://github.com/BookStackApp/BookStack/pull/1826
Author: @ssddanbrown
Created: 12/28/2019
Status: ✅ Merged
Merged: 1/18/2020
Merged by: @ssddanbrown
Base:
master← Head:api_origins📝 Commits (10+)
04137e7Started core API route workd336ba6Started work on API token controlsdccb279Built out interfaces & endpoints for API token managment832fbd6Added testing coverage to user API token interfaces692fc46Removed token 'client' text, avoid confusion w/ oAuth2cfa373Fixed some empty-expiry conditions of token ui flows3de55eeLinked new API token system into middleware349b462Extracted API auth into guard6f1b88aChange email confirmation from own middle to trait3d11cbaAdded testing coverage to API token auth📊 Changes
71 files changed (+2556 additions, -99 deletions)
View changed files
📝
.env.example.complete(+6 -0)➕
app/Api/ApiDocsGenerator.php(+125 -0)➕
app/Api/ApiToken.php(+31 -0)➕
app/Api/ApiTokenGuard.php(+166 -0)➕
app/Api/ListingResponseBuilder.php(+135 -0)📝
app/Auth/Role.php(+1 -1)📝
app/Auth/User.php(+15 -6)📝
app/Auth/UserRepo.php(+1 -0)➕
app/Config/api.php(+23 -0)📝
app/Config/auth.php(+1 -3)📝
app/Entities/Book.php(+2 -1)➕
app/Exceptions/ApiAuthException.php(+7 -0)📝
app/Exceptions/Handler.php(+42 -0)➕
app/Exceptions/UnauthorizedException.php(+17 -0)➕
app/Http/Controllers/Api/ApiController.php(+30 -0)➕
app/Http/Controllers/Api/ApiDocsController.php(+47 -0)➕
app/Http/Controllers/Api/BooksApiController.php(+101 -0)➕
app/Http/Controllers/UserApiTokenController.php(+139 -0)📝
app/Http/Controllers/UserController.php(+8 -6)📝
app/Http/Kernel.php(+4 -7)...and 51 more files
📄 Description
Create some level of baseline API implementation.
This will cover just the basic CRUD book endpoints and nothing more.
The purpose of this is to get a basic implementation in place for feedback to ensure it's sensible before scaling it out to many other endpoints.
TODO
Thoughts
Versioning
API versioning seems sensible, and it's what you'd expect for a central public service, but I don't think it'd be best for this project. Versioning will essentially depend on BookStack internals, supporting version compatibility along with multiple versions will require a fair amount of effort while slowing change. I think it'd be best to have no version but just try to keep things stable where possible.
Documentation
Having some API docs will be important. Since they'd be tied & specific to BookStack versions, I'd prefer to keep the docs out of the main (bookstackapp.com) website and instead generate the docs to be included in the platform itself, so the docs would be accessible via your own BookStack instance.
Docs should be generated from controller and route code since I'd prefer us not to have multiple areas of comments/docs to update. Route & controller code and comments should be parsed to a flexible format that can be stored and later output in blade templates. Ideally it'd be nice to support swagger as an output option but I'd say we do that at a later point, focus on readable built-in docs for now.
Notes
Standard Error Response Format
Standard Listing Response Format
List Operation Parameters
🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.