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

Use native JSON values in query string for POST canonicalization #893

Open
wants to merge 1 commit into
base: main
Choose a base branch
from

Conversation

tw4l
Copy link
Member

@tw4l tw4l commented Apr 3, 2024

Fixes #859

Description

Modifies the output of POST canonicalization query strings in pywb to use native JSON values for booleans, numbers, and null, rather than a string representation of their Python values.

This commit also adds a more complicated JSON test case that is also in warcio.js to ensure parity.

We now handle numbers like JavaScript's Number.prototype.toString() by dropping decimal from floats if they represent whole number, to ensure consistency between pywb and warcio.js.

Motivation and context

This is part of a cross-repo effort to standardize how POST canonicalization works in Webrecorder tools, and document this in a Webrecorder specfiication.

Testing notes

Seems to be working well with fuzzy matching on replay, but could use some additional testing.

Types of changes

  • Replay fix (fixes a replay specific issue)
  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to change)

Checklist:

  • [] My change requires a change to the documentation
  • I have updated the documentation accordingly.
  • I have added or updated tests to cover my changes.
  • All new and existing tests passed.

This commit also adds a more complicated JSON test case that is
also in warcio.js to ensure parity.

Treat numbers like JavaScript's Number.prototype.toString() by
dropping decimal from floats if they represent whole number.
@tw4l tw4l marked this pull request as ready for review April 4, 2024 19:42
@tw4l tw4l requested a review from ikreymer April 4, 2024 19:43
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.

Canonicalize non-GET URLs with native JSON values
1 participant