how to get live data from REST API using guzzle - live

I'm new to whole live data broadcast. I'm creating a website on laravel 5.1, and I need to get live data from a REST API, and after making some changes, broadcast the result to my own users.
I'm using pusher to broadcast data to my clients. and I figured, I should use Guzzle and/or CURL to get data from API. but the part I don't understand is how to get live data from API? Is there an option in guzzle that will keep the connection open continuously,or should I create a job to execute guzzle code every few seconds?
I know we use websockets to create a persistent connection between the server and clients to broadcast live data. but how to create a persistent connection between API server and my server to transfer the data?
Thank you friends in advance, appreciate any help :)

It depends on an API that you are using. If it's an usual REST API, then there are no options to make a "live" catching. Only pull the API periodically.
You API provider might support webhooks, websockets or some other technologies for push model. Depends on a provider, as I said before.

Related

How to store and access request specific data in Akka HTTP?

I need a mechanism to store and access request specific data in Akka HTTP. Is it possible without sending values around to each actor that is called from the route?
Let's say I want to log performance of all operations, including request id, so I'm able to search logs by request id. So when logging inside actor, it would be great to do something like Request.id.
Note that API does not implement session, since this is a specific service which runs behind main API (which is doing authentication etc).
Is there any library or built in way suitable for this?
Thanks in advance

Listening to API changes in Flutter

assume I have an API that gives a JSON response that return an id and a name.
In a mobile application normally I would make an http GET response to get this data in a one time connection with the server and display the results in the app, however if the data changes over time and I want to keep listening to this data whenever it changes how is that possible ?
I have read about sockets and seen the socket_io_client and socket_io packages, but I did not get my head around it yet, is using sockets the only way to achieve this scenario ? or is it possible to do it in a normal http request ?
Thanks for your time
What you need is not an API but a Webhook:
An API can be used from an app to communicate with myapi.com. Through that communication, the API can List, Create, Edit or Delete items. The API needs to be given instructions, though.
Webhooks, on the other hand, are automated calls from myapi.com to an app. Those calls are triggered when a specific event happens on myapi.com. For example, if a new user signs up on myapi.com, the automated call may be configured to ask the app to add a new item to a list.
is using sockets the only way to achieve this scenario ? or is it possible to do it in a normal http request ?
Sockets is only one of the ways to achieve your goal. It is possible to do it using a normal http request. Here, for example, the docs explain how to update data over the internet using HTTP.
From the flutter docs:
In addition to normal HTTP requests, you can connect to servers using WebSockets. WebSockets allow for two-way communication with a server without polling.
You'll find what you need under the networking section.
You should also take a look at the Stream and StreamBuilder classes.

Send existing geolocation data from cloud server to Live Objects

I currently have a running instance in Google Cloud which stores geolocation data from an IoT device. I wanted to connect my Google Cloud server to Live Objects so that these geolocation data can be used. Is there a way to connect Google Cloud and Live Objects together, to share data? Or is there a way to send a post request from an external server script (Node.js) to Live Objects without using MQTT? The post request is just a normal HTTP post. The HTTP post will be sent using REST API.
Thanks in advance.
Yes you can push data in Live Objects by using HTTPS REST API
check https://liveobjects.orange-business.com/swagger-ui/index.html#!/Data_management_data_store/addDataMessageUsingPOST
and example here: https://liveobjects.orange-business.com/doc/html/lo_manual.html#STREAMS
cheers

Cloud Messaging or REST API?

I am using the Firebase Cloud Messaging to send message to my app. I am thinking about using is to also send data from my app to my server, but I am not sure if there is any advantage in using that over a classic HTTP REST api.
I am better of sticking with a classic HTTP api to send message from devices to server, or is using a Firebase upstream message better in some ways?
The "official" advantage of an upstream FCM message, at least on Android, would be that no additional network connection is needed, resulting in performance and battery-saving benefits, and possibly easier implementation.
Depending on how you authenticate users I see a potential simplification in the case of FCM, as you may not need a separate authentication mechanism compared to a REST API.

REST API and real time event notification

I am exploring REST API, I want to know is there a way in REST to have Real time event notification to the client. I understand that REST is STATELESS protocol. One way to do this is to have client register for the interested events and poll for the same using some rest api. Is there any other way to do the say without using poll
You should try Atmosphere framework if you are trying this using Java.
It supports Jersey REST and server push.