mirror of
https://github.com/corda/corda.git
synced 2025-01-29 15:43:55 +00:00
Adds default endpoints for the Corda development webserver.
This commit is contained in:
parent
fca0afe591
commit
6e817f014d
@ -1,6 +1,9 @@
|
||||
package net.corda.webserver.api
|
||||
|
||||
import net.corda.core.node.NodeInfo
|
||||
import net.corda.core.contracts.ContractState
|
||||
import net.corda.core.contracts.StateAndRef
|
||||
import net.corda.core.identity.Party
|
||||
import net.corda.core.utilities.NetworkHostAndPort
|
||||
import java.time.LocalDateTime
|
||||
import javax.ws.rs.GET
|
||||
import javax.ws.rs.Path
|
||||
@ -34,10 +37,59 @@ interface APIServer {
|
||||
fun status(): Response
|
||||
|
||||
/**
|
||||
* Report this node's configuration and identities.
|
||||
* Report this node's addresses.
|
||||
*/
|
||||
@GET
|
||||
@Path("info")
|
||||
@Path("addresses")
|
||||
@Produces(MediaType.APPLICATION_JSON)
|
||||
fun info(): NodeInfo
|
||||
fun addresses(): List<NetworkHostAndPort>
|
||||
|
||||
/**
|
||||
* Report this node's legal identities.
|
||||
*/
|
||||
@GET
|
||||
@Path("identities")
|
||||
@Produces(MediaType.APPLICATION_JSON)
|
||||
fun identities(): List<Party>
|
||||
|
||||
/**
|
||||
* Report this node's platform version.
|
||||
*/
|
||||
@GET
|
||||
@Path("platformversion")
|
||||
@Produces(MediaType.APPLICATION_JSON)
|
||||
fun platformVersion(): Int
|
||||
|
||||
/**
|
||||
* Report the peers on the network.
|
||||
*/
|
||||
@GET
|
||||
@Path("peers")
|
||||
@Produces(MediaType.APPLICATION_JSON)
|
||||
fun peers(): List<Party>
|
||||
|
||||
/**
|
||||
* Report the notaries on the network.
|
||||
*/
|
||||
@GET
|
||||
@Path("notaries")
|
||||
@Produces(MediaType.APPLICATION_JSON)
|
||||
fun notaries(): List<Party>
|
||||
|
||||
/**
|
||||
* Report this node's registered flows.
|
||||
*/
|
||||
@GET
|
||||
@Path("flows")
|
||||
@Produces(MediaType.APPLICATION_JSON)
|
||||
fun flows(): List<String>
|
||||
|
||||
/**
|
||||
* Report this node's vault states.
|
||||
*/
|
||||
@GET
|
||||
@Path("states")
|
||||
@Produces(MediaType.APPLICATION_JSON)
|
||||
fun states(): List<StateAndRef<ContractState>>
|
||||
|
||||
}
|
@ -1,6 +1,8 @@
|
||||
package net.corda.webserver.internal
|
||||
|
||||
import net.corda.core.contracts.ContractState
|
||||
import net.corda.core.messaging.CordaRPCOps
|
||||
import net.corda.core.messaging.vaultQueryBy
|
||||
import net.corda.webserver.api.APIServer
|
||||
import java.time.LocalDateTime
|
||||
import java.time.ZoneId
|
||||
@ -18,5 +20,17 @@ class APIServerImpl(val rpcOps: CordaRPCOps) : APIServer {
|
||||
return Response.ok("started").build()
|
||||
}
|
||||
|
||||
override fun info() = rpcOps.nodeInfo()
|
||||
override fun addresses() = rpcOps.nodeInfo().addresses
|
||||
|
||||
override fun identities() = rpcOps.nodeInfo().legalIdentities
|
||||
|
||||
override fun platformVersion() = rpcOps.nodeInfo().platformVersion
|
||||
|
||||
override fun peers() = rpcOps.networkMapSnapshot().flatMap { it.legalIdentities }
|
||||
|
||||
override fun notaries() = rpcOps.notaryIdentities()
|
||||
|
||||
override fun flows() = rpcOps.registeredFlows()
|
||||
|
||||
override fun states() = rpcOps.vaultQueryBy<ContractState>().states
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user