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: 17 days 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: 2025-04-09T22:07:10.000Z (20 days ago)
- Last Synced: 2025-04-13T13:07:38.211Z (17 days ago)
- Topics: fixer-io, gradle, h2-database, java, junit5, springboot, springdata-jpa, springdoc-openapi
- Language: Java
- Homepage:
- Size: 184 KB
- Stars: 4
- Watchers: 1
- 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 REST 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 24](https://openjdk.java.net/projects/jdk/24) 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
* [Spring Doc](https://springdoc.org) for API documentation
* [JUnit 5](https://junit.org/junit5) 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`.
## Configuration
Exchange API can run out-of-the-box as long as credentials for rate provider is defined as `FIXER_IO_KEY` environment variable or in [`application.yml`](src/main/resources/application.yml) 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).