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

Revisit API error cases #122

Open
7 of 18 tasks
wwerner opened this issue Feb 2, 2020 · 1 comment
Open
7 of 18 tasks

Revisit API error cases #122

wwerner opened this issue Feb 2, 2020 · 1 comment
Labels
P:1 Highest Priority

Comments

@wwerner
Copy link
Contributor

wwerner commented Feb 2, 2020

We're still experiencing intermittend hanging requests.
To approach this in a structured kind of way, I suggest writing a dedicated negative test suite for

  • Trying to access non-existing resources (see also Accessing non-existing resources just hangs #96) -> 404
    • Organization
    • Unit
    • Context
    • Schema
    • Schema Version (by /organization and /version/<reference>)
    • Sources
  • Syntactically invalid specifications (by POST, PATCH, PUT) -> 400
  • Lifecycle state changes to invalid states -> 400
  • Incomplete entities (by POST, PATCH, PUT) -> 400
    • Organization
    • Unit
    • Context
    • Schema
    • Schema Version (by /organization and /version/<reference>)
  • Invalid schema version updates
    • Conflicting previous and current versions (gaps, same version, version no decreases) -> 409
    • Incompatible specifciations in compatible version update (for patch and minor updates) -> 409
@wwerner wwerner added the P:1 Highest Priority label Feb 2, 2020
@VaughnVernon
Copy link
Contributor

VaughnVernon commented Feb 2, 2020

@wwerner A lot of this can be avoided by projecting a CQRS query model to eliminate navigational queries. Instead we can simple take all the path parameters and make a single composite key that resolves to the schema version (or whatever level the user wants).

Key: org:unit:context:schema:version
Value: schema-version-definition

We can create projections even though we are currently not event sourced. All of the events are already there, or you can use full-entity state-based projections.

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

No branches or pull requests

2 participants