Author of swagger-aem here.
Some of the goals of creating an OpenAPI specification for a number of AEM web endpoints (which used to be described via curl on a number of forum threads, blog posts, articles, etc) are to provide better integration with various tools in various technology stacks, and to improve response handling.
From that OpenAPI specification, swagger-aem provides some API clients (SDKs) written in Ruby, Python, Java, and node.js . This can be pushed further to 20+ programming languages.
Why is this handy one might ask? Because different organisations have different requirements and different SOEs. A simple use case would be one company standardising their AEM provisioning environment with Puppet (which is ruby based) and another company with Ansible (which is Python based). The AEM infrastructure projects I've been on are generating unique system passwords (including admin password) for each environment, so no two environments having the same passwords. And because this password generation is done in the project's choice of tools, whichever the language is, it then uses swagger-aem to set these unique passwords. The password generation is just one example, I'm using swagger-aem for AEM auto recovery, blue green deployments, and many many other automation tasks, across multiple programming languages.
What's the problem with using curl? Many. The main one is that if you need to process JSON/XML/HTML responses from AEM via shell, it's super painful to do and you can't unit test the logic easily compared to doing it in programming languages such as Ruby, Python, etc. An example of Ruby SDK with error handling is GitHub - shinesolutions/ruby_aem: Ruby client for Adobe Experience Manager (AEM) API . Another reason why curl is not good enough is that some projects don't provide access to shell, e.g. think serverless environments.
I have a slide deck on AEM API clients Building An AEM API Clients Ecosystem
Those use cases I mentioned above (setting unique passwords, auto recovery, etc) are implemented in AEM OpenCloud, an open source AEM infrastructure automation on AWS. Here's a slide deck on AEM OpenCloud AEM OpenCloud . Code is available at Search · topic:aem org:shinesolutions · GitHub
Please feel free to ask me if there's any further question.
I am not seeing any real value apart from use API thru java client(for poc, play with some api without going to much in detail) instead of curl for those activities. otherwise, i'll prefer to consume sling
Otherwise, I'll prefer consume sling API or JCR instead use this client.