GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — fix: make mixed CRUD method directives order-independent by 014-code · Pull Request #867 · APIJSON/APIJSON

Conversation

@014-code

@014-code 014-code commented Jul 26, 2026

Copy link
Copy Markdown
Contributor

Summary

Fixes #809.

Mixed CRUD requests containing @post, @put, or @delete could be parsed incorrectly depending on the order of fields in the JSON object.

For example, when a business object appeared before its @delete directive, the object could fall back to GET or use the method assigned to a related array entry.

Root Cause

AbstractParser.batchVerify collected method directives and processed business objects in the same loop.

Therefore, a directive only affected objects appearing after it in iteration order.

Changes

  • Pre-scan all supported method directives before processing business objects
  • Make mixed CRUD method dispatch independent of JSON field order
  • Preserve the priority of an object's explicit @method
  • Keep method directive values limited to String or JSONObject
  • Add documentation for deleting and batch inserting into the same table
  • Add regression tests for method ordering, priority, and invalid array values

Verification

  • mvn -q -f APIJSONORM/pom.xml test
  • Tests run: 3
  • Failures: 0
  • Errors: 0
  • git diff --check passed

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

TommyLemon reacted with thumbs up emoji TommyLemon reacted with heart emoji
All reactions
  • 👍 1 reaction
  • ❤️ 1 reaction
@014-code
fix: make mixed CRUD method directives order-independent APIJSON#809
c01a4e5
@TommyLemon

TommyLemon commented Jul 26, 2026 •
edited
Loading

Uh oh!

There was an error while loading. Please reload this page.

Copy link
Copy Markdown
Member

Good, thank you contribute again~
This PR is a little bit big, so I need some time to review and test the change.

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@TommyLemon
TommyLemon merged commit 2ea3700 into APIJSON:master Jul 28, 2026
1 check passed

Uh oh!

There was an error while loading. Please reload this page.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Reviewers

No reviews

Uh oh!

There was an error while loading. Please reload this page.

Assignees

No one assigned

Labels

None yet

Projects

None yet

Milestone

No milestone

Development

Successfully merging this pull request may close these issues.

[问题咨询] 同一个json请求中,同时新增和删除

Uh oh!

There was an error while loading. Please reload this page.

2 participants

@014-code @TommyLemon
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.