liveapicreator-cli

5.2.2 • Public • Published

LiveAPICreatorCLI

A command-line tool to access CA Live API Creator REST API and Logic services. Refer to online documentation of creating and using Live API Creator REST API

Installation

    git clone https://github.com/EspressoLogicCafe/liveapicreator-devops.git
    cd liveapicreator-devops
    
    Select one of three directories (platform: windows, linux, and macos) and copy the 'lac' and 'lacadmin' to your
    path where you intend to run your scripts.

Features

  • Log in once per server, stay "logged in" for the lifetime of the API key
  • Can call GET, POST, PUT and DELETE
  • Can read/write objects from/to file or stdin (suitable for pipe work!)

Command Line Service

  Usage: lac [options] [command]
  
  
    Commands:
  
      login [options] <url>                   Login to an API Server
      logout [options] [url]                  Logout from the current server, or a specific server
      use <alias>                             Use the specified server by default
      status                                  Show the current server, and any defined server aliases
      get [options] <resource>                Retrieve some data for the given resource/table/view
      post [options] <resource>               Insert some data
      put [options] <resource>                Update some data
      delete [options] <resource>             Delete some data
      putdata [options] <resource>            Update a single row with an upload to a file to a named attribute (-k <key> -c <attr> -f foo.jpg)
      describe [options] <resource>           Describe the specified resource, can be: tables[/tablename], views[/viewname], resources, functions, license, serverinfo
      schema [options] <list|swagger|export>  Administer API project options for an account.
  
    Options:
  
      -h, --help     output usage information
      -V, --version  output the version number
 
 

Logon to an API Server

$lac login -u demouser -p mypassword http://localhost:8080/rest/default/demo/v1
Logging in...
This server licensed to: Live API Creator
Login successful, API key will expire on: 2015-11-18T15:03:37.342Z

See which API server (if any) you are logged into

$lac status
 
You are currently logged in to server: https://localhost:8080/rest/default/demo/v1 as user: demo
Defined aliases:
┌───────┬───────────────────────────────────────────────────────────┬───────┐
│ Alias │ Server                                                    │ User  │
├───────┼───────────────────────────────────────────────────────────┼───────┤
│sample │ https://localhost:8080/rest/default/sample/v1             │sample │
├───────┼───────────────────────────────────────────────────────────┼───────┤
│ demo  │ https://localhost:8080/rest/default/demo/v1               │ demo  │
└───────┴───────────────────────────────────────────────────────────┴───────┘

DESCRIBE a system resource

This can return information about all tables, or one specific table, or all views/one specific view, or get information about the server or the server's license. The possible values for the resource are:

  • tables
  • tables/<table-name>
  • views
  • views/<view-name>
  • license
  • serverinfo
$lac describe tables
 
DB    Table
----  -------------------
demo  customer
demo  employee
demo  employee_picture
demo  LineItem
demo  product
demo  PurchaseOrder
demo  purchaseorder_audit
$lac describe tables/product
 
Name            Type     Size      PK
--------------  -------  --------  --
product_number  BIGINT         19  *
name            VARCHAR        50
price           DECIMAL        19
icon            BLOB        65535
full_image      BLOB     16777215

GET

  Usage: get <resource> [options]
 
  Options:
 
    -h, --help                       output usage information
    -k, --pk <pk>                    Optional: primary key of the object to retrieve
    -f, --sysfilter <sysfilter>      Optional: sysfilter, e.g. "less(balance:1000) or equal(name:'SomeName')
    -s, --sysorder <sysorder>        Optional: sorting sysorder, e.g. "(balance asc,name desc_uc)"
    -g, --userfilter <named filter>  Optional: named filter, e.g. "namedFilter(columnName:'SomeName')
    -t, --userorder <named order>    Optional: named sorts, e.g. "namedSort([columnName])"
    -z, --pagesize <pagesize>        Optional: up to how many rows to return per level
    -m, --format <format>            Optional: format of output, either text (default), json or compactjson    --truncate <length>
    -a, --serverAlias <serverAlias>  Optional: alias of the server to use if other than the current default server

Get a single REST endpoint (compressed format)

$lac get demo:employee
 
demo:employee/1 employee_id:1 login:sam name:Sam Yosemite
demo:employee/2 employee_id:2 login:mlittlelamb name:Mary Little-Lamb
demo:employee/3 employee_id:3 login:sconnor name:Sarah Connor
demo:employee/4 employee_id:4 login:jkim name:John Kim
demo:employee/5 employee_id:5 login:bmcmanus name:Becky McManus
etc...

GET a single REST endpoint (JSON format)

$lac get employee/4 -m json
[
  {
    "@metadata"{
      "href""http://localhost:8080/rest/default/demo/v1/demo:employee/4",
      "checksum""A:3ed29188014675ec",
      "links": [
        {
          "href""http://llocalhost:8080/rest/default/demo/v1/demo:employee_picture?filter=employee_id%20%3D%204",
          "rel""children",
          "role""employee_pictureList",
          "type""http://localhost:8080/rest/default/demo/demo:employee_picture"
        },
        {
          "href""http://localhost:8080/rest/default/demo/v1/demo:PurchaseOrder?filter=salesrep_id%20%3D%204",
          "rel""children",
          "role""PurchaseOrderList",
          "type""http://llocalhost:8080/rest/default/demo/demo:PurchaseOrder"
        }
      ]
    },
    "employee_id": 4,
    "login""jkim",
    "name""John Kim"
  }
]
 
$lac get demo:customer --userfilter "myFilter(custname:'Alpha and Sons')" --userorder "sortByName"

POST (insert) a JSON payload

$lac post --help
 
  Usage: post <resource> [options]
 
  Options:
 
    -h, --help                       output usage information
    -j, --json <json>                JSON for the data being inserted
    -f, --jsonfile <jsonfile>        Name of a file containing JSON to be inserted, or stdin to read from stdin
    -m, --format <format>            Optional: format of output, either text (default), json or compactjson
    -a, --serverAlias <serverAlias>  Optional: alias of the server to use if other than the current default server
 
$lac post customer -j '{ "name": "new posted record","balance": 0,"credit_limit": 9000 }'
 
POST for customer:
I demo:customer/new%20posted%20record name:new posted record balance:0 credit_limit:9000
Request took: 61ms - # objects touched: 1 

PUT (update) a JSON Payload

$lac put --help
 
  Usage: put <resource> [options]
 
  Options:
 
    -h, --help                       output usage information
    -j, --json <json>                JSON string for the data being updated
    -f, --jsonfile <jsonfile>        Name of a file containing JSON to be updated, or stdin to read from stdin
    -m, --format <format>            Optional: format of output, either text (default), json or compactjson
    -a, --serverAlias <serverAlias>  Optional: alias of the server to use if other than the current default server
 
$ liveapicreator put customer -j '{ "@metadata": {"checksum": "A:693190f461f5402e"  }, "name": "new posted record", "credit_limit": 8000  }'
 
PUT for customer:
U demo:customer/new%20posted%20record name:new posted record balance:0 credit_limit:8000
Request took: 42ms - # objects touched: 1 

note: you can replace the checksum value with "override" - but this overrides optimistic locking so use it wisely.

DELETE a REST resource

Required fields are the primary key (--pk ) and checksum (--checksum )

$lac delete --help
 
  Usage: delete <resource> [options]
 
  Options:
 
    -h, --help                       output usage information
    -k, --pk <pk>                    Primary key of the object to delete
    --checksum <checksum>            Optional: checksum for the object to delete, or "override". If not specified, the object will be retrieved then deleted.
    -f, --jsonfile <jsonfile>        Optional: name of a file containing JSON to be deleted, or stdin to read from stdin
    -m, --format <format>            Optional: format of output, either text (default), json or compactjson
    -a, --serverAlias <serverAlias>  Optional: alias of the server to use if other than the current default server
 
liveapicreator delete customer -k "new posted record" --checksum "A:e86aea2e0a4e74bf"

Logout

$lac logout
Logout successful

Versions

Current Tags

  • Version
    Downloads (Last 7 Days)
    • Tag
  • 5.2.2
    1
    • latest

Version History

Package Sidebar

Install

npm i liveapicreator-cli

Weekly Downloads

1

Version

5.2.2

License

Apache

Unpacked Size

99.4 MB

Total Files

22

Last publish

Collaborators

  • nothingspare
  • tylerm007