Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/makiftutuncu/exchange
REST API providing exchange rates and conversions
https://github.com/makiftutuncu/exchange
fixer-io gradle h2-database java junit5 springboot springdata-jpa springdoc-openapi
Last synced: 3 months ago
JSON representation
REST API providing exchange rates and conversions
- Host: GitHub
- URL: https://github.com/makiftutuncu/exchange
- Owner: makiftutuncu
- License: mit
- Created: 2020-08-29T14:31:48.000Z (over 4 years ago)
- Default Branch: master
- Last Pushed: 2023-12-15T08:43:16.000Z (about 1 year ago)
- Last Synced: 2024-05-01T12:51:57.132Z (10 months ago)
- Topics: fixer-io, gradle, h2-database, java, junit5, springboot, springdata-jpa, springdoc-openapi
- Language: Java
- Homepage:
- Size: 122 KB
- Stars: 4
- Watchers: 2
- Forks: 2
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE.md
Awesome Lists containing this project
README
# Exchange API
Exchange API is a RESTful API providing exchange rates and conversions for many currencies.
## Table of Contents
1. [Technologies](#technologies)
2. [Running](#running)
3. [Configuration](#configuration)
4. [Documentation](#documentation)
5. [Development and Testing](#development-and-testing)
6. [Contributing](#contributing)
7. [License](#license)## Technologies
Exchange API is a [Spring Boot](https://spring.io/projects/spring-boot) project written in [Java 11](https://openjdk.java.net/projects/jdk/11) and it uses following:
* [fixer.io](https://fixer.io) as exchange rate provider
* [Spring Data](https://spring.io/projects/spring-data) for data persistence
* [H2](https://www.h2database.com) as database
* [e](https://github.com/makiftutuncu/e) for error management
* [Spring Doc](https://springdoc.org) for API documentation
* [JUnit 5](https://junit.org/junit5) and [HttpClientMock](https://github.com/PGSSoft/HttpClientMock) for testing
* [Gradle](https://gradle.org) as build tool## Running
You can Exchange API as a regular Java application in your favorite IDE with [`Main.java`](src/main/java/dev/akif/exchange/Main.java) as your main class. You can also run it with Gradle as following:
```bash
gradle bootRun
```By default, Exchange API runs on `localhost:8080`.
There is also a playground deployed on Heroku at https://akifs-exchange-api.herokuapp.com. Feel free to visit https://akifs-exchange-api.herokuapp.com/swagger.html and play with it.
## Configuration
There is no need for a manual configuration as default values are enough to run Exchange API out-of-the-box. However, if you wish to make your own configuration (change credentials etc.), you can do so by editing [`application.properties`](src/main/resources/application.properties) file.
## Documentation
API documentation is managed by [Spring Doc](https://springdoc.org). To access [Swagger UI](https://swagger.io/tools/swagger-ui), open [`/swagger.html`](http://localhost:8080/swagger.html) in a web browser after running Exchange API. You can also find Open API specification at [`/docs`](http://localhost:8080/docs) as a Json.
## Development and Testing
Exchange API is built with Gradle. You can use regular Gradle tasks such as `clean`, `compile`, `test` tasks for development and testing.
## Contributing
All contributions are welcome, including requests to feature your project utilizing Exchange API. Please feel free to send a pull request. Thank you.
## License
Exchange API is licensed with [MIT License](LICENSE.md).