mirror of
https://github.com/BookStackApp/BookStack.git
synced 2026-07-16 05:33:49 +03:00
API Ability - Create gallery-image of type "cover_book" #5256
Closed
opened 2026-02-05 09:51:55 +03:00 by OVERLORD
·
6 comments
No Branch/Tag Specified
development
l10n_development
release
snyk-action
ci_and_static
mfa_key
phpstan_june26
MilnerMart/development
GamerClassN7/impersonations-for-admin
Zhey-on/feature/csp-image-css-controls-6033
tortillas5/development
llm_only
vectors
McTom234/oidc-key-algorithms
captcha_example
v26.05.2
v26.05.1
v26.05
v26.03.5
v26.03.4
v26.03.3
v26.03.2
v26.03.1
v26.03
v25.12.9
v25.12.8
v25.12.7
v25.12.6
v25.12.5
v25.12.4
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
🔩 API 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#5256
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?
Originally created by @MaximeLibert on GitHub (Apr 15, 2025).
API Endpoint or Feature
Using the existing create method for image-gallery , people should be able to use type "cover_book" to create a book cover to then link to a book.
Use-Case
I am currently developing a small python connector that creates books in my BookStack instance, I would like to be able to add book covers using the API endpoint.
My planned method was, using API:
As you probably know, I cannot use type "gallery" cause it would interpret the uploaded_to value to be a page id not a book id.
Additional context
No response
@ssddanbrown commented on GitHub (Apr 15, 2025):
Hi @MaximeLibert,
Both the
books - POST - Createandbooks - PUT - Updateendpoints directly accept image data via theimageparameter as part of amultipart/form-dataform data request.You don't need to upload them via a separate endpoint and then "attach" them (your planned steps 2 & 3). You can just provide the image during the creation (Step 1).
@MaximeLibert commented on GitHub (Apr 15, 2025):
Hi @ssddanbrown ,
Sorry, I was lazy in my context explanation.
The python connector that I am currently building will be used to sync content from one BookStack instance to another. Both are in different networks so I cannot implement the content of multi-instance or "just" use permission to have some users see only some parts of one instance cause they wont be able to access it.
For that, I have decided to use API calls and not webhooks cause it is easier for me to trigger the rebuild of the source instance and so on.
I plan to have my technical API user to only be able to read some parts of the source instance (based on shelves rights) and just upsert the content in the other instance. Thus, I will check periodically what was "last updated" and store id mappings in a database. My script is almost finished, everything works except book covers.
For every "attachments" and "images" of source instance my logic is:
Creating the image gallery or attachment" - POST call with file (content type = multipart/form-data) OR Updating the attachment/image if already in destination
Updating the page with file- PUT call with file(content type = multipart/form-data) (even if it might be useless some of the times)
Updating the content of the page to change the hrefs.
I wanted to reuse this logic in order not to rewrite code for the book covers since they are "just" specific image galeries with type "book_cover" but the API wont allow me to do so. I could do what you proposed so thanks in advance for this.
@MaximeLibert commented on GitHub (Apr 15, 2025):
Feedback after trying your solution
Do I need to set something up for this to work ??
@ssddanbrown commented on GitHub (Apr 15, 2025):
@MaximeLibert For a PUT request you'll need to add a
_methodform item with valuePUTas an awkward workaround to a PHP limitation (hopefully to be solved soon). Is mentioned in the API docs but easy to miss.POSTrequests are fine.@MaximeLibert commented on GitHub (Apr 16, 2025):
Thanks for this, its true that it is easy to miss !
Thank you for your for your time man !
@ssddanbrown commented on GitHub (Apr 16, 2025):
No worries!
I'm going to go ahead and close this request as out of scope though.
The gallery image endpoints are specifically intended for content images, with other endpoints used for other images, and I'm not keen on duplicating actions across endpoints.