-
Notifications
You must be signed in to change notification settings - Fork 8
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
High level api #14
base: master
Are you sure you want to change the base?
High level api #14
Conversation
@heliocastro, as you already contributed some valuable refactoring code, perhaps you're interested in reviewing my proposal for an OO API extension here? I would love to hear your opinion... |
312e2e9
to
cdf57f0
Compare
cdf57f0
to
d6b0e77
Compare
3fd439a
to
9be7e16
Compare
9be7e16
to
2bb8394
Compare
Agreed with @tngraf to proceed with the MR, open topics before merge:
|
Just FIY, we're in full mode towards next SW360 release, where we we kicked away liferay and whole authentication methods changed and extended API calls will exist, so some refactoring will be needed on sw360python as well. |
e55c440
to
0464feb
Compare
This removes our own patch handling for adding releases and also allows to pass a dict with release datails now, e.g. to set relation or project mainline state for a linked release.
Start a high level API
This allows for easy de-duplication.
0464feb
to
be8dbe2
Compare
@tngraf, we discussed about this proposal already Siemens-internal a while ago. I still use and love it in a number of places, especially for interactive API usage, so here's the public PR. :)
Several times, I found myself writing project-specific JSON parsing code (especially to parse
['_embedded']['sw360:releases']
and friends). So I started with first basic classes and made some important attributes and especially relations available in an OO fashion.My code tries to be a thin and maintenable extension to the mostly direct API access we have now, only adding OO abstractions where they provide real benefit. To avoid the need to closely follow each SW360 api change, I only make important attributes available, the rest is available as the usual JSON data in the
details
attribute.Example session:
Main open points: