Package: ibp-python-sdk
Blockchain Python SDK/ModulePython client library to use the IBM Cloud BlockchainService.This module will allow you to use native py functions to leverage the same functionality seen in theIBP APIsTable of ContentsOverviewPrerequisitesInstallationExplore the SDKUsing the SDKConstructing service clientsAuthenticationReceiving operation responsesError HandlingGenerationLicenseOverviewThe IBM Cloud Blockchain Python SDK allows developers to programmatically interact with the
IBM Cloud Blockchain service.This repository is generated from an OpenAPI file that describes all available APIs.
It is recommended to read through theIBP API docsto see the list of capabilities.
Any issues with this SDK can be opened here or against the IBM Blockchain Platform service through IBM Cloud support.PrerequisitesAnIBM Cloudaccount.AnIBM Blockchain Platform Service instanceAn IAM API key to allow the SDK to access your service instance. Create an account level api keyhere(alternatively you can create a service instance level api key from the IBM cloud UI).An installation of Python (version 3) on your local machine.InstallationUse this command to download and install the Blockchain Python SDK project.
Once this is done your Python application will be able to use it:pip install --upgrade ibm_cloud_sdk_core
pip install --upgrade ibp-python-sdkExplore the SDKThis module is generated from an OpenAPI (swagger) file.
The same file populated ourIBP APIs documentation.
To find desired functionality start by browsing theIBP APIs documentation.
Then find the corresponding python example to the right of the api documentation.Alternatively you could manually browse the SDK's main file:ibm_cloud/blockchain_v3.py.Using the SDKThis section provides general information on how to use the services contained in this SDK.Constructing service clientsStart by requiring the IBP Python SDK and then creating aclient.
Here's an example of how to construct an instance:fromibp_python_sdkimportBlockchainV3,IAMAuthenticator,ApiException# create an authenticator - see more examples belowauthenticator=IAMAuthenticator(apikey='{API-Key}',)# Create client from the "BlockchainV3" classclient=BlockchainV3(authenticator=authenticator)client.set_service_url('https://{API-Endpoint}')# Service operations can now be called using the "client" variable.AuthenticationBlockchain services use token-based Identity and Access Management (IAM) authentication.IAM authentication uses an API key to obtain an access token, which is then used to authenticate
each API request. Access tokens are valid for a limited amount of time and must be regenerated.To provide credentials to the SDK, you supply either an IAM serviceAPI keyor anaccess token:Specify the IAM API key to have the SDK manage the lifecycle of the access token.
The SDK requests an access token, ensures that the access token is valid, and refreshes it when
necessary.Specify the access token if you want to manage the lifecycle yourself.
For details, seeAuthenticating with IAM tokens.Examples:Supplying the IAM API key and letting the SDK manage the access token for you:# Example - letting the SDK manage the IAM access token# importsfromibp_python_sdkimportBlockchainV3,IAMAuthenticator,ApiException# Create an authenticatorauthenticator=IAMAuthenticator(apikey='{API-Key}')# Create client from the "BlockchainV3" classclient=BlockchainV3(authenticator=authenticator)client.set_service_url('https://{API-Endpoint}')Supplying the access token (a bearer token) and managing it yourself:# Example - manage the IAM access token myself# importsfromibp_python_sdkimportBlockchainV3,IAMAuthenticator,ApiException# Create an authenticatorauthenticator=IAMAuthenticator(bearertoken:'{my IAM access token}')# Create client from the "BlockchainV3" classclient=BlockchainV3(authenticator=authenticator)client.set_service_url('https://{API-Endpoint}')...# Later when the access token expires, the application must refresh the access token,# then set the new access token on the authenticator.# Subsequent request invocations will include the new access token.authenticator.bearertoken=# new access tokenFor more information on authentication, including the full set of authentication schemes supported by
the underlying Python Core library, seethis page.Receiving operation responsesEach service method (operation) will return the following values:response.result- An operation-specific result (if the operation is defined as returning a result).response.status_code- the HTTP status code returned in the response messageresponse.headers- the HTTP headers returned in the response messageExample:Here's an example of calling theGetComponentoperation:# Create an authenticatorauthenticator=IAMAuthenticator(apikey:'{API-Key}',)# Create client from the "BlockchainV3" classclient=BlockchainV3(authenticator=authenticator)client.set_service_url('https://{API-Endpoint}')# Get data for componenttry:response=client.get_component(id='{Component-ID}')print(f'Server status code:{response.status_code}')print(f'response:\n{response.result}')# handle good response hereexceptApiExceptionase:print(f'error status code:{e.code}')print(f'error response:{e.message}')# handle error hereError HandlingIn the case of an error response from the server endpoint, the Blockchain Python SDK will do the following:The service method (operation) will throw anApiExceptionerror.  Thiseobject will
contain the error message retrieved from the HTTP response if possible, or a generic error message
otherwise.Thee.messagefield will contain the (response if the operation returned a response).Thee.codefield will contain the HTTP response code.GenerationThis is a note for developers of this repository on how to rebuild the SDK.this module was generated/built via theIBM Cloud OpenAPI SDK generatorSDK generator overviewConfiguration option codeIBP's OpenAPI sourcedownload the  latest sdk generatorrelease(should see the java filelib/openapi-sdkgen.jar)clone/download the IBP OpenAPI filebuild command w/o shell:cd code/openapi-sdkgen
java -jar C:/code/openapi-sdkgen/lib/openapi-sdkgen-3.19.0.jar generate -g ibm-python --additional-properties initialize=true -i C:/code/cloud-api-docs/ibp.yaml -o C:/code/openapi-sdkgen/node_build --apiref C:/code/cloud-api-docs/apiref-python.json && cp -r C:/code/openapi-sdkgen/node_build/blockchain C:/code/ibp-python-sdk && cp -r C:/code/openapi-sdkgen/node_build/test C:/code/ibp-python-sdk
// inspect the output files in make a PR to this repo if they look okayLicenseThe IBM Cloud Blockchain Python SDK is released under the Apache 2.0 license. The license's full text can be found inLICENSE.