Skip to main content

REST API defined as YAML and invoked with lastapi.

Project description

lastapi

The Omni REST API Client

This is still WIP, but I've got prototype working which is for the update DNS function using CloudFlare API.

The project is written in Python 3. You can install dependencies with

pip3 install --user -r requirements.txt

Walk-through

REST API schema

The schema is defined in schemas/cloudflare.yaml

---
Name: cloudflare
Base:
  Protocol: https
  Host: api.cloudflare.com
Headers:
  X-Auth-Key: ${auth_key}
  X-Auth-Email: ${auth_email}
  Content-Type: application/json

Actions:
  update_dns:
    Path:
      - /client/v4/zones/
      - ${zone_id}
      - /dns_records/
      - ${dns_id}
    Method: PUT
    Payload:
      type: ${dns_type}
      name: ${dns_name}
      content: ${dns_content}
      ttl: 1
      proxied: true

This will be verified against schemas/schema.yaml using pykwalify.

Global parameters

Global parameters for the API, usually API key and account stuff, are in schemas/cloudflare-params.yaml.example. You should duplicate it and remove the .example suffix and put in real credential.

---
auth_key: sample-api-key
auth_email: raynix@some.email

Invoking an Action in the schema

To invoke the update_dns action defined in the schema, run:

./lapi --schema schemas/cloudflare --func update_dns --vars zone_id=xxx,dns_id=xxx,dns_type=A,dns_name=mydomain.com,dns_content=1.2.3.4

Please comment or raise an issue if this doesn't work for you.

Project details


Release history Release notifications | RSS feed

This version

0.2

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

lastapi-0.2.tar.gz (4.1 kB view details)

Uploaded Source

Built Distribution

lastapi-0.2-py3-none-any.whl (18.0 kB view details)

Uploaded Python 3

File details

Details for the file lastapi-0.2.tar.gz.

File metadata

  • Download URL: lastapi-0.2.tar.gz
  • Upload date:
  • Size: 4.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.21.0 setuptools/41.0.1 requests-toolbelt/0.9.1 tqdm/4.32.2 CPython/3.7.3

File hashes

Hashes for lastapi-0.2.tar.gz
Algorithm Hash digest
SHA256 bac0383c30045e816649677033990ed6867b8ae439394d4057156b3a5e743957
MD5 686c8fd16fafcfec8a57347d579cf8af
BLAKE2b-256 ae3ce9b2dff17d3e2ff3e1526ef6e80e22a4139d785797e6991636c42ea18518

See more details on using hashes here.

File details

Details for the file lastapi-0.2-py3-none-any.whl.

File metadata

  • Download URL: lastapi-0.2-py3-none-any.whl
  • Upload date:
  • Size: 18.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.21.0 setuptools/41.0.1 requests-toolbelt/0.9.1 tqdm/4.32.2 CPython/3.7.3

File hashes

Hashes for lastapi-0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 75056dc3241de7bae42117d6732bbd93315e3bda4978dc974bfc93fad4ca4a6c
MD5 b9abdf156f128994852b2b220bbab558
BLAKE2b-256 db05ebb495423706bd6b94cb7538dce0f7857fef16246915807ccf733371b30a

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page