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
Documentation
Part of ByStar Digital Ecosystem http://www.by-star.net.
- Remote Operations Interactive Command Modules (RO-ICM) – Best Current (2019) Practices For Web Services Development
- A Generalized Swagger (Open-API) Centered Web Services Testing Framework
- Interactive Command Modules (ICM) and Players
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.pyA starting point template to be customized for your own swagger file.
- bin/rinvokerPetstore.pyProvides a list of Petstore example command line invokations.
- bin/opScnPetstore.pyPoints 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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
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
Algorithm | Hash digest | |
---|---|---|
SHA256 | c81ecf5e7a188e62bc3b9508ae3642cd95abcff51314607f0b3007f4875083d2 |
|
MD5 | b3634334f5c262207c35296cbd4a60c2 |
|
BLAKE2b-256 | b5aa97bde2cb370efafae05d79ed9aae53842e82c8e53432bf0bf06f011a2cb7 |