Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Added option to override request #99

Open
wants to merge 2 commits into
base: master
Choose a base branch
from

Conversation

khartnett
Copy link

This change allows overriding the request, so you can render a page that uses a post request.
Example:

curl -X POST \
  https://url-to-pdf-api.herokuapp.com/api/render \
  -H 'Content-Type: application/json' \
  -H 'cache-control: no-cache' \
  -d '{ "url": "https://en.wikipedia.org/w/index.php", "request": { "method":"POST", "headers": { "cache-control": "no-cache", "content-type": "application/x-www-form-urlencoded" }, "postData": "search=pdf&title=Special%3ASearch&go=Go" } }'

@@ -62,6 +62,9 @@ const sharedQuerySchema = Joi.object({
'screenshot.clip.width': Joi.number(),
'screenshot.clip.height': Joi.number(),
'screenshot.omitBackground': Joi.boolean(),
// 'request.headers': Joi.object(), // any way to send an object?
Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Not sure if there are any clever workarounds here. Could optionally be a json string that gets decoded? I think #78 has this same issue.

@kimmobrunfeldt
Copy link
Member

Thanks for the contribution. I think this is a great idea.

I don't have currently time to help with this but I like the idea of having full control to the request. It opens up even easier ways to exploit this service to make requests to internal services etc, but that's what the API_KEY is for.

@oliverkane
Copy link

I have a fork of this project I maintain for an internal app my company has. I've had to modify this so that it allows a JSON POST body that the app will make rather than.

I added a field called postJsonData and useJsonPost, which modifies the very first request to...well POST the provided json to the target. We use this to get a specific rendered HTML page based on the payload we send it.

This doesn't look like it's gotten any traction, but I'd love to see this merged into the project as otherwise I have to maintain a constantly-rebased fork.

Here's the meat of the change.
image

@lucawen
Copy link

lucawen commented Aug 24, 2020

its not make sense create a service that we cant pass a authorization to it. Why not accept the pr? its just a simple thing...

@oliverkane
Copy link

For those who are looking for a tool that has this feature, I've been using this micro-service with great success. I think if the authors don't wish to add it, that is fine. The whole point of open source stuff is we can fix it/add it ourselves or swap it out.

https://github.com/thecodingmachine/gotenberg

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

4 participants