zowe / api-layer

The API Mediation Layer provides a single point of access for mainframe service REST APIs.
Eclipse Public License 2.0
48 stars 59 forks source link

Java client library #2856

Open vahmi01 opened 1 year ago

vahmi01 commented 1 year ago

Is your feature request related to a problem? Please describe. I would like to have a Java client library to make integration with API ML easier from the client point of view - I'm developing an application which is using services provided by API ML, not an application which integrates with API ML as a service. The library should focus on what is provided by API ML itself like authentication, querying of active services, management of various tokens (SSO, PAT etc.).

Also, this can be an extension of zaas-client, adding more functionality and more abstraction like possibility to use custom http client or custom certificate provider (instead of reading from a single keystore).

Describe the solution you'd like I would like to have a Java library provided by Zowe out of the box, that I can import to my product and I know it is working correctly.

Describe alternatives you've considered Developers have to implement this integration on their own, using custom code based on REST API documentation, and troubleshoot all possible issues along the way.

Willingness to help Yes, I'm willing to help. I think, I can also share some code we have so far.

balhar-jakub commented 1 year ago

Sounds great to me. I would really like to have such extension of the ZAAS client to provide the full SDK functionality for the clients.

taban03 commented 7 months ago

Based on Michal clarification, the idea is that there can be other clients of API ML and "3rd party" services, and some of those clients can be written in Java. If a client wants to take benefit of API ML features exposed through REST API, every consumer has to write client code for that, but that can be nontrivial especially for some advanced functions, now for another product where you want to do the same, you have to write it again from scratch, if there is a library doing it, you don't have to reinvent it for every individual product I.e. there might be a client that would like to implement all the flows to do login with API ML, use client certificate, PAT, refresh SSO tokens.