The accepted practice is to retain the collection name even for a single
resource operation, like getting a specific transaction.
Also moves the PUT /transactions to /transactions/{id} which makes it
clearer that it can only be applied to an already created transaction.
Adds PUT method to OpenAPI spec.
Given that the transaction IDs are generated on server-side, for the PUT
method to remain idempotent, it can only update existing transactions.
It also adds a TransactionExists method on the DAL.
Issue: #20
It adds the method to the OpenAPI spec and generates a new server
config. The requirement for the ID on the Transaction component is
removed, so that it can be reused for insertions.
It also adds two new middlewares, a logging and a spec validator. If a
request does not follow the spec, a 400 is returned immediately.
Issue: #18
Also locks the tools versions and launches them from the packages
installed by the go mod. Otherwise, they would have to be manually
installed beforehand.
Swap direct access to the DB on the API server with an data abstraction
layer.
Implement each API type converter separately and revert changes to the
auto-generated server implementation types.
Add error return to DAL methods. Implement `Transactions`.
Add tools.go with oapi-codegen and mockgen.
https://www.jvt.me/posts/2022/06/15/go-tools-dependency-management/
Update go packages.
Issues #5, #12
Introduces the api-server/main.go, which creates the echo server,
connects it to the implemented handlers and runs it.
Fix the SQL query to retrieved transactions w/ categories.
Issues #6 and #7