Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/godot-addons/godot-unirest
Unirest in GDScript: Simplified, lightweight HTTP client library.
https://github.com/godot-addons/godot-unirest
godot godot-addon godot-engine rest-client unirest
Last synced: about 16 hours ago
JSON representation
Unirest in GDScript: Simplified, lightweight HTTP client library.
- Host: GitHub
- URL: https://github.com/godot-addons/godot-unirest
- Owner: godot-addons
- License: mit
- Created: 2017-12-25T10:28:02.000Z (almost 7 years ago)
- Default Branch: master
- Last Pushed: 2018-04-07T05:50:59.000Z (over 6 years ago)
- Last Synced: 2023-08-07T08:05:03.178Z (over 1 year ago)
- Topics: godot, godot-addon, godot-engine, rest-client, unirest
- Language: GDScript
- Size: 10.7 KB
- Stars: 37
- Watchers: 5
- Forks: 8
- Open Issues: 4
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Unirest for Godot Engine (v3.0)
![][unirest-logo]
[Unirest](http://unirest.io) is a set of lightweight HTTP libraries available in multiple languages, built and maintained by [Mashape](https://github.com/Mashape), who also maintain the open-source API Gateway [Kong](https://github.com/Mashape/kong).
## Features
* Make `GET`, `POST`, `PUT`, `PATCH`, `DELETE` requests
* Both syncronous and asynchronous (non-blocking) requests
* Supports form parameters, file uploads and custom body entities
* Supports gzip
* Supports Basic Authentication natively
* Customizable timeout
* Customizable default headers for every request (DRY)
* Automatic JSON parsing into a native object for JSON responses## Installing
To utilize Unirest, install it using asset library, or simply download and copy `unirest-gdscript` to your addons folder.
### Creating Requests
So you're probably wondering how using Unirest makes creating requests in GDScript easier, let's start with a working example:
```gdscript
var unirest = preload("res://addons/unirest-gdscript/unirest.gd")
var response = unirest.post("http://httpbin.org/post", { "Accept": "application/json" }, { "parameter": 23, "foo": "bar" })response.code # The HTTP status code
response.headers # The HTTP headers
response.body # The parsed response
response.raw_body # The unparsed response
```## Asynchronous Requests
GDScript also supports asynchronous requests in which you can define a `callback` function to be passed along and invoked when Unirest receives the response:
```gdscript
var unirest = preload("res://addons/unirest-gdscript/unirest.gd")func callback_function(response):
response.code # The HTTP status code
response.headers # The HTTP headers
response.body # The parsed response
response.raw_body # The unparsed response
var thread = unirest.post("http://httpbin.org/post", { "Accept": "application/json" }, { "parameter": 23, "foo": "bar" }, callback_function)
```## Custom Entity Body
```gdscript
var unirest = preload("res://addons/unirest-gdscript/unirest.gd")var response = unirest.post("http://httpbin.org/post", { "Accept": "application/json" },
json.dumps({
"parameter": "value",
"foo": "bar"
})
)
```**Note**: For the sake of simplicity, even with custom entities in the body, the keyword argument is still `params` (instead of `data` for example). I'm looking for feedback on this.
### Basic Authentication
Authenticating the request with basic authentication can be done by providing an `auth` array like:
```gdscript
var unirest = preload("res://addons/unirest-gdscript/unirest.gd")
var response = unirest.get("http://httpbin.org/get", ['username', 'password'])
```
# Request```gdscript
var unirest = preload("res://addons/unirest-gdscript/unirest.gd")unirest.get(url, headers = {}, params = {}, auth = (), callback = None)
unirest.post(url, headers = {}, params = {}, auth = (), callback = None)
unirest.put(url, headers = {}, params = {}, auth = (), callback = None)
unirest.patch(url, headers = {}, params = {}, auth = (), callback = None)
unirest.delete(url, headers = {}, params = {}, auth = (), callback = None)
```- `url` - Endpoint, address, or URI to be acted upon and requested information from in a string format.
- `headers` - Request Headers as an associative array
- `params` - Request Body as an associative array or object
- `auth` - The Basic Authentication credentials as an array
- `callback` - Asychronous callback method to be invoked upon result.# Response
Upon receiving a response, Unirest returns the result in the form of an Object. This object should always have the same keys for each language regarding to the response details.- `code` - HTTP Response Status Code (Example 200)
- `headers`- HTTP Response Headers
- `body`- Parsed response body where applicable, for example JSON responses are parsed to Objects / Associative Arrays.
- `raw_body`- Un-parsed response body# Advanced Configuration
You can set some advanced configuration to tune Unirest-Python:
### Timeout
You can set a custom timeout value (in **seconds**):
```python
unirest.timeout(5) # 5s timeout
```### Default Request Headers
You can set default headers that will be sent on every request:
```python
unirest.default_header('Header1','Value1')
unirest.default_header('Header2','Value2')
```You can clear the default headers anytime with:
```python
unirest.clear_default_headers()
```----
[unirest-logo]: http://cl.ly/image/2P373Y090s2O/Image%202015-10-12%20at%209.48.06%20PM.png
[license-url]: https://github.com/brandonlamb/unirest-gdscript/blob/master/LICENSE