Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/makiftutuncu/spring-boot-crud
Opinionated, REST-ful and generic CRUD operations for Spring Boot applications
https://github.com/makiftutuncu/spring-boot-crud
api crud java kotlin spring-boot
Last synced: about 2 months ago
JSON representation
Opinionated, REST-ful and generic CRUD operations for Spring Boot applications
- Host: GitHub
- URL: https://github.com/makiftutuncu/spring-boot-crud
- Owner: makiftutuncu
- License: mit
- Created: 2023-01-14T16:07:55.000Z (almost 2 years ago)
- Default Branch: main
- Last Pushed: 2024-04-25T22:10:46.000Z (8 months ago)
- Last Synced: 2024-05-01T12:52:38.759Z (8 months ago)
- Topics: api, crud, java, kotlin, spring-boot
- Language: Kotlin
- Homepage:
- Size: 338 KB
- Stars: 8
- Watchers: 2
- Forks: 1
- Open Issues: 16
-
Metadata Files:
- Readme: README.md
- License: LICENSE
- Codeowners: CODEOWNERS
Awesome Lists containing this project
README
# spring-boot-crud
spring-boot-crud is a library to help build CRUD applications easily with Spring Boot. As a developer, you probably wrote simple CRUD applications many times and wished you could get rid of most of that boilerplate around designing the APIs, services, repositories, etc. It is repetitive, boring and error-prone. spring-boot-crud offers an abstract and opinionated way to avoid most of this. You only need to care about your data models. After defining data models and a few other glue types, you get a full-featured CRUD application (and its tests!) for free. The library is highly generic and abstract. It utilizes type parameters and type constraints for additional type-safety while enforcing some best practices.
| Latest Version | Java Version | Kotlin Version | Spring Boot Version |
| -------------- | ------------ |----------------|---------------------|
| 0.5.1 | 17 | 1.8.21 | 3.0.6 |## Table of Contents
1. [Modules](#modules)
2. [Examples](#examples)
3. [Development & Testing](#development--testing)
4. [Releases](#releases)
5. [Contributing](#contributing)
6. [License](#license)## Modules
spring-boot-crud consists of 2 modules. You can click on a module for more information and detailed instructions.
| Name | Details | Documentation |
|-----------------------------------------|----------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| [spring-boot-crud-api](api/README.md) | API implementations | [![](https://img.shields.io/badge/docs-0.5.1-brightgreen.svg?style=for-the-badge&logo=kotlin&color=0095d5&labelColor=333333)](https://javadoc.io/doc/dev.akif/spring-boot-crud-api) |
| [spring-boot-crud-test](test/README.md) | Test implementations | [![](https://img.shields.io/badge/docs-0.5.1-brightgreen.svg?style=for-the-badge&logo=kotlin&color=0095d5&labelColor=333333)](https://javadoc.io/doc/dev.akif/spring-boot-crud-test) |## Examples
There are template projects you can use to create new repositories on GitHub with an existing project setup using spring-boot-crud.
* https://github.com/makiftutuncu/kotlin-spring-boot-template
* https://github.com/makiftutuncu/java-spring-boot-template## Development & Testing
This project is written in Kotlin and built with Gradle. Standard Gradle tasks like `clean`, `compileKotlin`, `compileTestKotlin` and `test` can be used during development and testing.
If you don't have Gradle installed, you can replace `gradle` commands with `./gradlew` to use Gradle wrapper.
To test your changes during development:
1. Bump your version in [build.gradle.kts](build.gradle.kts#L9) and append `-SNAPSHOT`.
2. Run `gradle publishToMavenLocal` to publish artifacts with your changes to your local Maven repository.
3. In the project you use spring-boot-crud, update the version of spring-boot-crud dependencies to your new snapshot version. Make sure you have `mavenLocal()` in your `repositories` in your build definition for this to work.## Releases
Artifacts of this project are published to Maven Central along with their sources and documentations. They are versioned according to [semantic versioning](https://semver.org). CI/CD is managed by GitHub Actions. See [.github](.github) for more details on these workflows.
## Contributing
All contributions are welcome, including requests to highlight your project using this library. Please feel free to send a pull request. Thank you.
## License
This project is licensed with MIT License. See [LICENSE](LICENSE) for more details.