Skip to main content

MM-WS-ICM Library: Machine-to-Machine Web Service Interactive Command Modules (ICM) -- A set of facilities for developing Performer and Invoker web-services based on Swagger (Open-API) specifications through ICMs.

Project description

MM-WS-ICM Library: Machine-to-Machine Web Service Interactive Command Modules (ICM) – A set of facilities for developing Performer and Invoker web-services based on Swagger (Open-API) specifications through ICMs.

Sources And Packages

Sources Repositories

Packages Repositories

Support

For support, criticism, comments and questions; please contact the author/maintainer

Documentation

Part of ByStar Digital Ecosystem http://www.by-star.net.

On the invoker side, a Swagger (Open-API) specification is digested with bravado and is mapped to command line with ICM.

On the performer side, a Swagger (Open-API) specification is used with the code-generator to create a consistent starting point.

An ICM can be auto-converted to become a web service.

Binaries And Command-Line Examples

  • bin/rinvoker.py
    A starting point template to be customized for your own swagger file.
  • bin/rinvokerPetstore.py
    Provides a list of Petstore example command line invokations.
  • bin/opScnPetstore.py
    Points to various scenario files for the Petstore example.

Remote Invoker (rinvoker-svc.py) Examples

For the example “Pet Store Service” at http://petstore.swagger.io/v2/swagger.json at command-line (or in bash) you can run:

rinvokerPetstore.py

Which will auto generate a complete list of all supported remote opperations in the Swagger Service Specification.

You can then invoke any of those remote operations from the command-line, by executing for example:

rinvokerPetstore.py --svcSpec="http://petstore.swagger.io/v2/swagger.json" --resource="pet" --opName="getPetById"  -i rinvoke petId=1

Which will produce something like:

Operation Status: 200 OK
Operation Result: {   u'category': {   u'id': 0, u'name': u'string'},
    u'id': 1,
    u'name': u'testsw',
    u'photoUrls': [u'string'],
    u'status': u'tttest',
    u'tags': [{   u'id': 0, u'name': u'string'}]}

By turning on verbosity to level 15 (rinvokerPetstore.py -v 15) you can observe complete http traffic as reported by requests library.

Operation Scenario (opScn-svc.py) Examples

For the example “Pet Store Service” at http://petstore.swagger.io/v2/swagger.json using python with RO_ abstractions you can specify remote invokation and expectations.

To get a list of some example scenatios run:

opScnPetstore.py

To run a particular example scenario, you can then run:

opScnPetstore.py  --load /tmp/py2v1/local/lib/python2.7/site-packages/unisos/mmwsIcm-base/opScn-1.py -i roListExpectations

Which will produce something like:

* ->:: @None@pet@getPetById
** ->:: svcSpec=http://petstore.swagger.io/v2/swagger.json
** ->:: Header Params: None
** ->:: Url Params:
{   'petId': 1}
** ->:: Body Params: None
* <-:: httpStatus=200 -- httpText=OK -- resultsFormat=json
** <-:: Operation Result:
{   u'category': {   u'id': 1, u'name': u'dog'},
    u'id': 1,
    u'name': u'Dog1',
    u'photoUrls': [],
    u'status': u'pending',
    u'tags': []}
* ==:: SUCCESS
* XX:: Sleeping For 1 Second
* ->:: @None@pet@getPetById
** ->:: svcSpec=http://petstore.swagger.io/v2/swagger.json
** ->:: Header Params: None
** ->:: Url Params:
{   'petId': 9999}
** ->:: Body Params: None
* <-:: httpStatus=200 -- httpText=OK -- resultsFormat=json
** <-:: Operation Result:
{   u'category': {   u'id': 99, u'name': u'SAGScope'},
    u'id': 9999,
    u'name': u'doggie',
    u'photoUrls': [u'string'],
    u'status': u'available',
    u'tags': [{   u'id': 99, u'name': u'SAGTags'}]}
* ==:: SUCCESS

Python Example Usage

Invoker (Client) Development

from unisos.mmwsIcm import wsInvokerIcm
from unisos.mmwsIcm import ro

Testing Framework

from unisos.mmwsIcm import wsInvokerIcm
from unisos.mmwsIcm import ro

Performer (Server) Development

from unisos.mmwsIcm import wsInvokerIcm
from unisos.mmwsIcm import ro

Project details


Download files

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

Source Distribution

unisos2.mmwsIcm-0.19.tar.gz (48.5 kB view details)

Uploaded Source

File details

Details for the file unisos2.mmwsIcm-0.19.tar.gz.

File metadata

  • Download URL: unisos2.mmwsIcm-0.19.tar.gz
  • Upload date:
  • Size: 48.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/4.5.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.61.1 CPython/3.9.2

File hashes

Hashes for unisos2.mmwsIcm-0.19.tar.gz
Algorithm Hash digest
SHA256 c81ecf5e7a188e62bc3b9508ae3642cd95abcff51314607f0b3007f4875083d2
MD5 b3634334f5c262207c35296cbd4a60c2
BLAKE2b-256 b5aa97bde2cb370efafae05d79ed9aae53842e82c8e53432bf0bf06f011a2cb7

See more details on using hashes here.

Supported by

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