-
Notifications
You must be signed in to change notification settings - Fork 2
URI Structure for REST Service Operations
POST operations have a RequestBody (the message that is POSTed to the listed URI) and a ResponseBody (the message body that is returned to the actor doing the POST).
We use this to provide the standard Energy Interoperation messages - for example, for creating a tender (offer to buy or sell) the POST RequestBody contains an EiCreateTenderPayload, while the POST ResponseBody contains the correlated EiCreatedTenderPayload.
For this project principal authors of the base standards flattened the type hierarchy for only the product (energy) and information elements used in the present implementation of the Common Transactive Services. This approach maintains standards conformance and allows for
- A simpler to use and understand type system
- Simpler Java class definitions for standard payloads
- A conformance statement at the end of the project
We use JSON rather than XML for message payloads with Jackson serialization and deserialization between Java and JSON.
Note that the {id} in URI determines the transport end point. ActorId is independent of {id}*.
Certain payloads are created in the market integration code; in the current release they are in parity-client/CtsBridge.java and associated code files.
| URI | Operation | RequestBody | ResponseBody |
|---|---|---|---|
| /lma/createTender | POST | EiCreateTender | EiCreatedTender |
| /lma/createTransaction | POST | EiCreateTransaction | EiCreatedTransaction |
| /lma/cancelTender | POST | EiCancelTender | EiCanceledTender |
| /lma/party | GET | ActorId |
| URI | Operation | RequestBody | ResponseBody |
|---|---|---|---|
| /lme/createTender | POST | EiCreateTender | EiCreatedTender |
| /lme/cancelTender | POST | EiCancelTender | EiCanceledTender |
| /lme/party | GET | ActorId |
| URI | Operation | RequestBody | ResponseBody |
|---|---|---|---|
| /teua/{id}/createTransaction | POST | EiCreateTransaction | EiCreatedTransaction |
| /teua/{id}/clientCreateTender | POST | ClientCreateTender | ClientCreatedTender |
| /teua/{id}/party | GET | ActorId | |
| /teua/{id}/clientCreateQuote | POST | ClientCreateQuotePayload | ClientCreatedQuotePayload |
| /teua/{id}/clientAcceptQuote | POST | ClientAcceptQuotePayload | ClientAcceptedQuotePayload |
| /teua/{id}/clientCancelQuote | POST | ClientCancelQuotePayload | ClientCanceledQuotePayload |
| URI | Operation | RequestBody | ResponseBody |
|---|---|---|---|
| /client/{id}/clientCreateTransaction | POST | ClientCreateTransaction | CientCreatedTransaction |
| /client/{id}/clientCreateTender | POST | ClientCreateTender | ClientCreatedTender |
NOTE: /client/{id}/clientCreateTender passes through the client to /teua/{id}/clientCreateTender as a test driver convenience
| URI | Operation | RequestBody | ResponseBody |
|---|---|---|---|
| Receive match/transaction from Market to LME | Socket | MarketCreateTransaction | MarketCreatedTransaction |
| Send tender from LME to Market | Socket | MarketCreateTender | MarketCreatedTender |
The Architecture Diagram shows the relationships of the Actors.
Code Documentation
- Actor Pseudocode - LMA, LMM, TEUA
- RESTful Controller Payloads
- Position Manager
- Logging
- Time in CTS
- UML and Java Classes
- Simple Binary Encoding (SBE)
- SBE Quick Guide
- Auction Market
Building and Running the Project
- Setup Run and Drive - with YouTube videos
- Dependencies and Prerequisites
- Set Up MySQL
- Parity Terminal Client
- Project Build Steps
- In Case of Difficulty
Docker
- Docker Background
- Docker Setup Requirements
- Docker Setup Part 1
- Docker Setup Part 2
- Running EML-CTS as a Single Executable JAR
- Docker Quick Guide
General Tech Guides
Spring 2024 Updates