2017-06-21 12:55:48 +00:00
|
|
|
API
|
|
|
|
===
|
2017-06-05 12:37:23 +00:00
|
|
|
|
|
|
|
This section describes the APIs that are available for the development of CorDapps:
|
|
|
|
|
2017-08-01 16:04:16 +00:00
|
|
|
.. toctree::
|
|
|
|
:maxdepth: 1
|
|
|
|
|
|
|
|
api-states
|
|
|
|
api-persistence
|
|
|
|
api-contracts
|
|
|
|
api-vault-query
|
|
|
|
api-transactions
|
|
|
|
api-flows
|
2017-09-27 16:10:38 +00:00
|
|
|
api-identity
|
2017-08-01 16:04:16 +00:00
|
|
|
api-core-types
|
2017-06-05 12:37:23 +00:00
|
|
|
|
2017-07-24 09:12:27 +00:00
|
|
|
Before reading this page, you should be familiar with the :doc:`key concepts of Corda <key-concepts>`.
|
|
|
|
|
2017-09-21 15:11:47 +00:00
|
|
|
Internal APIs and stability guarantees
|
|
|
|
--------------------------------------
|
|
|
|
|
|
|
|
.. warning:: For Corda 1.0 we do not currently provide a stable wire protocol or support for database upgrades.
|
|
|
|
Additionally, the JSON format produced by the client-jackson module may change in future.
|
|
|
|
Therefore, you should not expect to be able to migrate persisted data from 1.0 to future versions.
|
|
|
|
|
|
|
|
Additionally, it may be necessary to recompile applications against future versions of the API until we begin offering
|
|
|
|
ABI stability as well. We plan to do this soon after the release of Corda 1.0.
|
|
|
|
|
|
|
|
Finally, please note that the 1.0 release has not yet been security audited. You should not run it in situations
|
|
|
|
where security is required.
|
|
|
|
|
|
|
|
As of Corda 1.0, the following modules export public API that we promise to maintain backwards compatibility for,
|
|
|
|
unless an incompatible change is required for security reasons:
|
|
|
|
|
|
|
|
* core
|
|
|
|
* client-rpc
|
|
|
|
* client-jackson
|
|
|
|
|
|
|
|
The following modules don't yet have a completely stable API, but we will do our best to minimise disruption to
|
|
|
|
developers using them until we are able to graduate them into the public API:
|
|
|
|
|
|
|
|
* the Gradle plugins (cordformation)
|
|
|
|
* node-driver
|
|
|
|
* confidential-identities
|
|
|
|
* test-utils
|
|
|
|
* client-jfx, client-mock
|
|
|
|
* finance
|
|
|
|
* anything under the experimental directory (sub-components here may never graduate)
|
|
|
|
|
|
|
|
We hope to graduate the node-driver, test-utils and confidential-identities modules in the next feature release
|
|
|
|
after 1.0. The bulk of the Corda API is found in the core module. Other modules should be assumed to be fully internal.
|
|
|
|
|
|
|
|
The web server module will be removed in future: you should build web frontends for CorDapps using standard frameworks
|
|
|
|
like Spring Boot, J2EE, Play, etc.
|
2017-07-24 09:12:27 +00:00
|
|
|
|
|
|
|
Code that falls into the following package namespaces are for internal use only and not public. In a future release the
|
|
|
|
node will not load any CorDapp which uses them.
|
|
|
|
|
|
|
|
* Any package in the ``net.corda`` namespace which contains ``.internal``
|
2017-09-21 15:11:47 +00:00
|
|
|
* ``net.corda.node``
|