Where to start with API's - api

I am new to API's. I want to create one in grails.
I believe that another application website etc. would just post to a URL in my web-app and it will start a method.
Where is a good place to start my research into this. Any help would be grateful.Thanks.

it's my first answer but I hope it'll be useful for you :)
Here are some resources you should look into before making your own API:
REST - it's the theory about the whole concept of api you're building. Please find it on Wikipedia. I can't post link because of 2 links limit for new accounts here :)
http://en.wikipedia.org/wiki/SOAP - this is protocol supported by W3C for exchanging messages. Using standard should help your clients to adopt your api.
http://en.wikipedia.org/wiki/Oauth - obviously you should authenticate your users somehow. You can do it with Oauth - it's widely open and easy to implement. Again, your clients will have easy time connecting to it.
You will find implementations of all those technologies in Java or as Grails plugin itself.

Related

How to authenticate multiple api using Nuxt and nuxt-auth module

I have an application with (nuxt js using nuxt-auth) with local authentication so far (later I want to add git and google auth).
Now I need to add authentication to invoke other services / API (like google cloud rest API, payment system, youtube API, etc...)
The question is: the user is authenticated only once (during login to the application.) but each of these 3rd party APIs has its own authentication.
How to implement multiple authentications. (I read the documentation and google for the entire day but there is no clear answer).
As of today, it looks like it is not doable (people are needed on this module): https://github.com/nuxt-community/auth-module/issues/889
So, you would need to make it manually by plugging the APIs yourself.
Answer to your latest question~comment
Nuxt is indeed nice with some of it's modules (but you can totally dislike it, no problem :D).
First thing that you need to know, is that this project (nuxt-auth) is not the biggest one, #pooya is doing his best but he is on a lot of projects, so he cannot give all of his love to it. Then, you also need to understand that it's working great but it's still in a decent beta state with a lot of missing features, needed documentation and a lot of small things to make it an all rounded solid top notch solution.
That do not mean that you should not use it, I'm just saying that this module do have some limitations. Hence, the fact that it is not supporting a whole lot of OAuth solutions in a clear + simple + flexible way. And some breaking changes may be introduced in future updates.
The module is aimed towards having an OAuth solution to block the content of your website behind it (in my opinion). It means that you will usually use a single login solution and then, being able to have access to your app. I don't think that it's a viable multi-OAuth solution (yet).
Some services don't even need to use a solution like this. Stripe for example, should not be handled on the frontend but communicate with a backend for sensitive variables and just send minimal info thanks to Stripe Elements.
That said, the most common solution is JWT or OAuth2, and you could totally have a backend service or service like Okta, Auth0 or alike, do the heavy lifting by allowing simple logins to providers (Github, Google etc...).
To sum up, you do connect to this backend/service thanks to nuxt-auth, the service itself does the provider connection and you get the best of both worlds while still connected in a secure way through your initial nuxt-auth entry point login.
Or you could try to reach the community on Discord, see if somebody knows how to do it. Or even try to read the source code to see if it is currently feasable.
And that's my 2cts.

Integrating QlikView with SimPro

Has anyone ever tried to integrate QlikView BI application with SimPro business management software? If so, would be interested to know if you were successful and if so how?!!
Dorey.
Jonathan from simPRO here.
I'm not aware of any clients that have an integration with QlikView but it is a well respected reporting platform with a myriad of ways to extract data from other systems.
A quick scout around their documentation tells me that the easiest option for integration would using their QVSource API connector.
Details are here: http://www.qvsource.com/Connectors-For-QlikView/General-JSON-XML-SOAP-Web-API-Connector-For-QlikView
For simPROs API you would use this in "POST" methodology - ie: supplying the post data as per our API docs at: http://api.simpro.co . Our API uses OAuth authentication and there is dome detail and examples on using that with QVsource at: http://wiki.qvsource.com/General-Web-Connector-For-QlikView.ashx
Whilst we may not be able assist technically with setting up the QlikView system our technical support department can assist with any queries you have in regards to our API calls etc...
Hope that is of some help!
I am going to try and respond to your dilemma, while being a QV expert for the last 8 years I am not too familiar with simpro, however I did quickly browse through their API docs here -> http://api.simpro.co/
I have noticed that they support 3 formats, namely soap, json and xml. For qlikview you would choose xml. I have also noticed that they support 2 authentication methods namely basic auth and O Auth. IN this scenario you would be using basic auth (so you can pass a username and password via the url) as this will also work perfectly with Qlikview.
In your Edit Script, you will notice a "Data from files"-> Web Files, then in the popup you can enter the url from where you would retrieve your information from.
Note you need to pass format=xml to the url, along with your basic auth username and password to the relevant url (which you will find in simpro's docs), for any other format you will need QVSource which has a fee attached.
I hope this has pointed you in the right direction.

Open Contrail API, post request on project resource

I'm working on a cloud project and I have to use Contrail it provides a RESTful API to use, but it is documentation is too small. I would like to know how to perform rest requests, especially post requests on "project" resource.
Each Contrail config node provides supported API details(searchable) at http://:8082/documentation/index.html
You could also check here which is a bit old but should serve your project API needs.
Your question is old, but as there are no other answers I thought I would contribute one. Were you interested in an answer or just wanted to share the documentation you'd written? I agree with you that Contrail documentation is very scarce, and every attempt to contribute to it should be appreciated. I had to integrate with Contrail API a while ago, and found out that in some cases I had to call OpenStack APIs to get the job done (Contrail is built on top of OpenStack). Project and user management were some of them.
I wrote a documentation about Contrail api, For each resource I mention the allowed methods and which parameters to integrate on the request body and I test it until I get it to work finally I put an example. I haven't finished the documentation, I stopped working on Open Contrail. The documentation is my personal try maybe it would be useful and maybe it contains some mistakes, Thus, I would like to share it. You can find it here.

How to create a Web Intent service for my own site?

Twitter offers 'web intents' that are an alternative to OAuth access to their API. Basically, this provides a less feature rich experience, but can still be quite handy. User clicks on 3rd parts websites can create popup windows that check whether the user is logged in to twitter and if they are, allows them to us some Twitter features such as tweeting, retweeting, or following users.
My question is, how could I go about implementing an API like this? Are there tutorials or libraries? I'm not sure what technologie(s) power web intents or where I should start searching.
Thanks.
You can read more about web intents at webintents.org and read the W3C's draft spec. As far as I know, web intents are still somewhat of a new beast on the web and they have not been standardized.
Still, you may want to read this blog which contains a few examples of registering web intents and check out Paul Kinlan's git repo https://github.com/PaulKinlan/WebIntents
Hope that helps you get started.

JIRA SOAP API : link an issue to another

I'm working on a tool in C# that interfaces the JIRA SOAP API. I have read the documentation but I can't find what I'm looking for. Does anyone know if it is possible to link an issue to another one via this api?
PS : Actually, my real need is to convert an issue as a subtask of an issue...
Last time I looked, JIRA's web service wasn't really actively supported or encouraged by Atlassian. It's very much a second-class citizen compared to the web front end, with very basic operations.
Also, it's not a WSI-compliant web service (it's an old Axis-based RPC_encoded service), and so modern web service stacks won't even bind to it. You might want check that your client can perform basic query operations before diving into the depths of the API.
You can actually go pretty far with Jelly scripts, but converting an issue to a subtask then linking it as a subtask... I'm not positive that you can go that far.