Skip to content
[WIP] example of an openapi API design and a Go implementation of it
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
docs/api
payment
.gitignore
.travis.yml
LICENSE
Makefile
README.md
go.mod
go.sum

README.md

Go API Payments Example

Coverage Status Build Status Go Report Card GoDoc

This repository contains an example of a payments API implemented with Go serving the purpose of an example with the packages, tools, technologies, etc. that are used.

NOTE the packages, tools, technologies, etc., will be listed in the future when the first implementation be done; any other important information to highlight will be added to this document too.

Goal

Implement, in Go, a small example of a payment RESTful API which allows to:

  • Create, read, update and delete a payment.
  • Get a list of payments.

Considerations

The project will be used in the future of a base of experimentation for improving several topics, between some of them, API designs, Software Patterns, modularity, simplicity.

However all of those changes will be done through the time under my needs and curiosities and without any commitment and iterative in order to have have "releases".

This example isn't intended for being in production because it is already known that it requires some improvements which will never been done, because this is just an example; in addition, in the sources you may find a TODO: won't be implemented to mark parts which exists because it clarifies how some feature/requirement should be done, however, such implementation won't be done.

Following there is a incomplete list of improvements which should be done before using this implementation in a production system.

  • Add more input validations

NOTE that some decisions have been made without having any specific requirement in terms of business domain, production environment, SLAs, etc., so they may look to you that those are improvements to be made, however, they are not because of the lack of such requirements, that's the reason because they aren't in the list and they will never be, others they aren't because as commented it's an incomplete list, because of the fact that I may forget or may not think about them. If you think that this list should contain some which aren't on it, feel free to send an issue or PR, but be aware that it could be rejected because they may not be improvements, they may be some of those decisions which were made.

License

MIT, read the license file for more information.

You can’t perform that action at this time.