Introduction
The Next Plus Python SDK is a powerful and user-friendly package that allows developers to interact with the Nextplus API. With this SDK, developers can easily perform CRUD operations on tables and records within the Nextplus system.
It's a quick and valuable way to connect third-party components, including software and hardware, to Next Plus. This SDK can run practically on any computing module, from PC to Rasberry pi.
View Documentation pypi.org:
Features
User authentication with Next Plus API
Retrieve, create, update, and delete records in tables
Customizable queries with filtering options
Requirements
Python 3.x
requests library
Installation
To install the Next Plus Python SDK, you can use the following command:
pip install nextplus
Usage
Setting Up the Client
First, you need to set up the NextplusClient with your Next Plus server URL, username or email, and password. These can either be passed directly or set as environment variables.
from nextplus import NextplusClient # Note that you can use email or username client = NextplusClient( server_url='https://your.nextplus.server.url', email='[email protected]', password='yourpassword' )
Working with Tables
You can perform operations on tables, such as finding a specific table or fetching a list of all tables.
Find Tables
tables = client.Tables.find({'where': {'name': 'YourTableName'}}) print(json.dumps(tables))
Response:
[ { "id": "1958dbd0-b9bf-11ee-a4d7-950198b3451e", "name": "Machine Status Log", "columns": [ { "id": "_id", "name": "id", "type": "string" }, { "id": "deletedAt", "name": "deletedAt", "type": "date" }, { "id": "createdAt", "name": "createdAt", "type": "date" }, { "id": "modified", "name": "modified", "type": "date" }, { "id": "workflowSessionItemId", "name": "workflowSessionItemId", "type": "string" }, { "id": "formId", "name": "formId", "type": "string" }, { "name": "Machine ID", "type": "string", "required": true, "id": "COLUMN_machine-id" }, { "name": "Status", "type": "string", "id": "COLUMN_status" }, { "name": "Change Time", "type": "date", "id": "COLUMN_change-time", "deletedAt": "2024-01-23T08:06:42.426Z" } ], "created": "2024-01-23T07:14:51.021Z", "modified": "2024-01-23T08:06:44.500Z", "serverModified": "2024-01-23T08:06:44.500Z", "deletedAt": null, "deletedBy": null } ]
Note that you can only write to columns that are prefixed with COLUMN_
. Other columns are auto-generated and read-only.
Working with Records in a Table
You can create, update, find, and delete records in a specific table.
INSERT A RECORD
table = client.Table('your_table_id') record = { "COLUMN_machine-id": "Machine1", "COLUMN_status": "idle" } result = table.insert(record) print(f"Record inserted with ID: {result['_id']}")
Response:
{ "COLUMN_machine-id": "Machine1", "COLUMN_status": "idle", "_id": "7b74899f-f863-473a-9a96-d37a75e1c7fe", "createdAt": "2024-01-23T11:33:37.205Z", "modified": "2024-01-23T11:33:37.205Z", "serverModified": "2024-01-23T11:33:37.205Z", "deletedAt": null }
UPDATE A RECORD
updated_record = { "_id": "record_id", "COLUMN_status": "busy" } update_result = table.update(updated_record) print(update_result)
Response:
{ "_id": "7b74899f-f863-473a-9a96-d37a75e1c7fe", "COLUMN_machine-id": "Machine1", "COLUMN_status": "busy", "createdAt": "2024-01-23T11:33:37.205Z", "modified": "2024-01-23T11:34:52.185Z", "serverModified": "2024-01-23T11:34:52.185Z", "deletedAt": null }
FIND RECORDS
rows = table.find({'where': {'COLUMN_machine-id': 'Machine1'}}) print(rows)
Response:
{ "_id": "7b74899f-f863-473a-9a96-d37a75e1c7fe", "COLUMN_machine-id": "Machine1", "COLUMN_status": "busy", "createdAt": "2024-01-23T11:33:37.205Z", "modified": "2024-01-23T11:34:52.185Z", "serverModified": "2024-01-23T11:34:52.185Z", "deletedAt": null, "id": "7b74899f-f863-473a-9a96-d37a75e1c7fe" }
DELETE A RECORD
table.remove("record_id")
Response:
{ "_id": "7b74899f-f863-473a-9a96-d37a75e1c7fe", "COLUMN_machine-id": "Machine1", "COLUMN_status": "busy", "createdAt": "2024-01-23T11:33:37.205Z", "modified": "2024-01-23T11:36:23.226Z", "serverModified": "2024-01-23T11:36:23.226Z", "deletedAt": "2024-01-23T11:36:23.226Z" }