woocommerce-api-nim
A Nim wrapper for the WooCommerce REST API
Wraps a native library — check OS Compatibility below for platform-specific linking notes.
Summary
| Latest Version | Unknown |
|---|---|
| License | MIT |
| CI Status | Failing |
| Downloads | 0 |
| Last Indexed | 2026-07-21 05:24 |
Tags
Installation
nimble install woocommerce-api-nim
choosenim install woocommerce-api-nim
git clone https://github.com/mrhdias/woocommerce-api-nim
OS Compatibility
| Platform | Linux | macOS | Windows | FreeBSD | OpenBSD | NetBSD | Android | iOS | WASM | Embedded |
|---|---|---|---|---|---|---|---|---|---|---|
| woocommerce-api-nim | ✓ | ✓ | ✓ | - | - | - | - | - | - | - |
Source
| Repository | https://github.com/mrhdias/woocommerce-api-nim |
|---|---|
| Homepage | https://github.com/mrhdias/woocommerce-api-nim |
| Registry Source | nimble_official |
README
WooCommerce API - Nim Client
A Nim wrapper for the WooCommerce REST API. Easily interact with the WooCommerce REST API using this library.
Installation
git clone https://github.com/mrhdias/woocommerce-api-nim
cd woocommerce-api-nim
nimble install
Getting started
Generate API credentials (Consumer Key & Consumer Secret) following this instructions http://woocommerce.github.io/woocommerce-rest-api-docs/#rest-api-keys.
Check out the WooCommerce API endpoints and data that can be manipulated in http://woocommerce.github.io/woocommerce-rest-api-docs/.
Setup
- Synchronous API
import woocommerce/API
let wcapi = API(
url="http://example.com", # Your store URL
consumer_key="ck_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", # Your consumer key
consumer_secret="cs_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" # Your consumer secret
)
- Asynchronous API
import woocommerce/API
let wcapi = AsyncAPI(
url="http://example.com",
consumer_key="ck_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
consumer_secret="cs_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
)
Methods
| Params | Type | Description |
|---|---|---|
endpoint |
string |
WooCommerce API endpoint, example: products or order/12 |
data |
string |
JSON data stringified |
params |
seq[(string, string)] |
Accepts params to be passed as a query string |
- GET
# Retrieve
wcapi.get(endpoint: string; params: seq[(string, string)) # params is optional
- POST
# Create
wcapi.post(endpoint: string, data: string)
- PUT
# Update
wcapi.put(endpoint: string, data: string)
- DELETE
# Delete
wcapi.delete(endpoint: string; params: seq[(string, string)) # params is optional
- OPTIONS
# JSON Schema
wcapi.options(endpoint: string)
Response
All methods will return Response / AsyncResponse object.
Example of returned data for asynchronous API:
import woocommerce/API
import asyncdispatch
import json
proc main() {.async.} =
let wcapi = AsyncAPI(
url="http://example.com",
consumer_key="ck_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
consumer_secret="cs_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
)
response = await wcapi.get("products?status=publish&per_page=10&page=1")
echo response.status
if response.status == "200 OK":
let products = parseJson(response.body)
for product in products:
echo "SKU:", product["sku"], " NAME:", product["name"]
wcapi.close()
waitFor main()
Request with params example
import woocommerce/API
import asyncdispatch
import json
proc main() {.async.} =
let wcapi = AsyncAPI(
url="http://example.com",
consumer_key="ck_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
consumer_secret="cs_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
)
response = await wcapi.get(
"products",
params = @{"status": "publish", "per_page": $(10), "page": $(2)}
)
echo response.status
if response.status == "200 OK":
let products = parseJson(response.body)
for product in products:
echo "SKU:", product["sku"], " NAME:", product["name"]
wcapi.close()
waitFor main()