Как ответить с успешным форматом JSON после завершения транзакции в корде - PullRequest
0 голосов
/ 25 февраля 2020

Привет всем, я работаю над проектом, в котором мне нужно отправить ответ в формате JSON в CLI, который Транзакция завершила, позвольте мне привести вам пример. Рассмотрим, что я указал поток Start ExampleFlow pojo: {iouValue: 7}, otherParty: "O=PartyB,L=London,C=GB" и результат будет Starting Generating transaction based on new IOU. Verifying contract constraints. Signing transaction with our private key. Gathering the counter party's signature. Collecting signatures from counterparties. Verifying collected signatures. Obtaining notary signature and recording transaction. Broadcasting transaction to participants Done Flow completed with result: SignedTransaction(id=F95406D901209BA77396C1A4D375585C6E051414EE22BE441FC02E5AE147A050)
, но я хочу, чтобы они были в формате JSON, а не все, а как-то так:

{response: success }

я просто хочу получить ответ об успехе в JSON формат я использую проект IOU спасибо

Ответы [ 2 ]

0 голосов
/ 30 марта 2020

, поэтому я получил ответ, что вам нужно сделать, это добавить эту зависимость в клиент build.gradle

cordaCompile "net.corda:corda-jackson:$corda_release_version"

, после этого вам просто нужно реализовать этот код snip

 String json =  "";

            try {
                ObjectMapper mapper = JacksonSupport.createNonRpcMapper();

                json = mapper.writeValueAsString(results);
            } catch (JsonProcessingException e) {
                e.printStackTrace();
            }

            return json;

Результатом может быть любой тип данных, который вы хотите преобразовать в json

0 голосов
/ 25 февраля 2020

Этого можно добиться, установив соединение RP C с вашим узлом; вызовите поток, затем верните объект JSON.
Существует несколько подходов, которым вы можете следовать, и я рекомендую вам go через samples хранилище https://github.com/corda/samples для их изучения:

  1. Создайте веб-сервер (приложение SpringBoot), который REST API сервера, который вызывает ваши потоки и возвращает объект JSON: https://github.com/corda/samples/tree/release-V4/spring-webserver
  2. Создайте простое приложение Java, которое устанавливает соединение RP C с вашим узлом и служит клиентом для вызова определенного метода / потока: https://github.com/corda/samples/blob/release-V4/cordapp-example/clients/src/main/java/com/example/server/JavaClientRpc.java

Если вы следуете примеру веб-сервера, вы можете добавить метод к вашему контроллеру, который будет делать что-то вроде:

@GetMapping(value = "/my-api", produces = MediaType.APPLICATION_JSON_VALUE)
private ResponseEntity<YourObject> getSomething() {
    // Some code that calls your flow and returns YourObject.
    return ResponseEntity.ok().body(YourObject);
}
...