Skip to main content

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

  1. Make sure your server is accessible through port 3000
  2. 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

MIT

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)

Source distribution for spineapi 0.1.0
File Size Uploaded
spineapi-0.1.0.tar.gz 3.3 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for spineapi 0.1.0
File Interpreter ABI Platform
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

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files

0.0.5

2 release files

0.0.4

2 release files

0.0.3

2 release files

0.0.2

2 release files

0.0.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page