Spine API
Access your python functions through HTTP requests.
It is simple, clean, and easy to use. It works with jupyter notebooks too.
1. Setup your api server
Prerequisites
- Make sure your server is accessible through port 3000
- Have Node.js installed on your server
Installation
$ git clone https://github.com/spineapi/spine-api
$ cd spine-api/server
$ npm install
Run server
$ node server.js
Now you can access your server through http://YOUR_SERVER_IP:3000. Copy the passcode.
Installation
$ pip instal spineapi
Connect your python script to the server
1. Import the library
from spineapi import Connection
2. Define your function
def hello_function (input):
# ...
# do something
# ...
return output
3. Specify name and description to initialize your project
spine_connection = Connection(
project_path="hello_project",
project_name="My first project",
description="Arithmetic operations",
base_url="http://localhost:3000",
passcode="xxxx-xxxx-xxxx-xxxxx",
author="", # Optional
link="" # Optional
)
4. Register your function(s)
spine_connection.register_function(
pathname='hello_function',
function=hello_function,
# ============ Optional ==================
# Set True if you want to protect this API
requiresAuth=False,
authToken="xxx",
# ========================================
)
The function will be accessible through /api/hello_project/hello_function
5. Run
spine_connection.run()
That's it! You can now communicate with your ML model through HTTP post requests.
6. Send requests
Note You have to first run JSON.stringify(input) for the request data.
const data = {
input: JSON.stringify(YOUR_INPUT)
// ============ Optional ==================
// Required if the API is protected
authToken: "xxx",
// ========================================
}
Post request body to the endpoint.
const url = 'http://localhost:3000/api/hello_project/hello_function';
fetch(
url,
{
method: 'POST',
body: JSON.stringify(data),
headers: new Headers({ 'Content-Type': 'application/json' })
}
)
.then(res => res.json())
.catch(error => console.error('Error:', error))
.then(response => console.log('Success:', response));
License
Release files for spineapi 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| spineapi-0.1.0.tar.gz | 3.3 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| spineapi-0.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 8.4 kB
Release files / spineapi-0.1.0.tar.gz
| Download URL | spineapi-0.1.0.tar.gz |
|---|---|
| Size | 3.3 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
55e6113908f4c772a09a692b52f46a8fbf8962689d25cc5c4d834ea7179d9ec9
|
|
BLAKE2b-256 checksum How to use checksums |
00aa91a59d21f73d6be8774f436c232b6902e977210960340ed2f9af702cebb3
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/47.1.1 requests-toolbelt/0.9.1 tqdm/4.43.0 CPython/3.7.4
|
Release files / spineapi-0.1.0-py3-none-any.whl
| Download URL | spineapi-0.1.0-py3-none-any.whl |
|---|---|
| Size | 5.1 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
287f961e1d7f94ee486a077d2fde031516bce37f15db1005df2c484507d2f107
|
|
BLAKE2b-256 checksum How to use checksums |
50f11db161d918c4c326dd895b928489481e786e2d9539cc2ec29440d47b20c1
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/47.1.1 requests-toolbelt/0.9.1 tqdm/4.43.0 CPython/3.7.4
|