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

Rewrite of the internals as port of Python impl. #5

Open
onelson opened this issue Jul 18, 2021 · 0 comments
Open

Rewrite of the internals as port of Python impl. #5

onelson opened this issue Jul 18, 2021 · 0 comments

Comments

@onelson
Copy link
Contributor

onelson commented Jul 18, 2021

This is a half-hearted proposal, but worth looking into, probably.

The REST API has proven to be trouble in a number of respects, including:

  • regular discrepancy between docs and actual server behavior.
  • bugs related to inconsistent field formats in responses.
  • serious problems with performance in certain cases.

Part of the benefit of using the REST API comes from the fact there's a public spec which the server should adhere to.

They should, but as noted above there are frequent causes to file bugs. Unfortunately, filing bugs with Autodesk does not mean they will get fixed in our lifetime.


The Python API, otoh, is fairly stable, so it's not ridiculous to consider switching our approach to focus on a plain port of the Python client.

Tracking changes over time should not prove to be awful since updates from the vendor come so rarely. The downside is we will have to reverse-engineer many HTTP payloads to ensure we get the coverage we need in tests. Assuming the Python client has a reasonable test suite we can port, that'll give us some decent guidance.

This will mean huge breakage in the public API of the crate since much of the status quo depends on consuming payloads structured in that specific JSON API layout.

@onelson onelson modified the milestone: v0.9 Jul 18, 2021
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

No branches or pull requests

1 participant