An open API service indexing awesome lists of open source software.

https://github.com/astrapi69/data-api

Defines interfaces for data beans like jpa entities or DTO(Data Transfer Object) objects
https://github.com/astrapi69/data-api

active data dto identity java jpa modification tree-structure versioning

Last synced: 2 months ago
JSON representation

Defines interfaces for data beans like jpa entities or DTO(Data Transfer Object) objects

Awesome Lists containing this project

README

        

# Overview

[![Java CI with Gradle](https://github.com/astrapi69/data-api/actions/workflows/gradle.yml/badge.svg)](https://github.com/astrapi69/data-api/actions/workflows/gradle.yml)
[![Open Issues](https://img.shields.io/github/issues/astrapi69/data-api.svg?style=flat)](https://github.com/astrapi69/data-api/issues)
[![Maven Central](https://maven-badges.herokuapp.com/maven-central/io.github.astrapi69/data-api/badge.svg)](https://maven-badges.herokuapp.com/maven-central/io.github.astrapi69/data-api)
[![Javadocs](http://www.javadoc.io/badge/io.github.astrapi69/data-api.svg)](http://www.javadoc.io/doc/io.github.astrapi69/data-api)
[![MIT license](http://img.shields.io/badge/license-MIT-brightgreen.svg?style=flat)](http://opensource.org/licenses/MIT)
[![Donate](https://img.shields.io/badge/donate-❤-ff2244.svg)](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=GVBTWLRAZ7HB8)
[![Hits Of Code](https://hitsofcode.com/github/astrapi69/data-api)](https://hitsofcode.com/github/astrapi69/data-api/view)
[![Lines Of Code](https://tokei.rs/b1/github/astrapi69/data-api)](https://github.com/astrapi69/data-api)

This api project provides interfaces that data objects(for instance jpa entities or DTO objects) can implement for
providing api features like:

- identifiable objects
- id generation
- provide information for the creation, last modification and deletion
- activate or deactivate objects
- name- or textable objects that holds a name property
- versionable objects that holds a version property
- key value pair objects
- processable objects
- traceable objects
- treeable objects
- validatable objects
- verifiable objects
- visibility of objects
- and composition of the above described objects

Note: The project holds only interfaces and has no dependencies to other libraries

> Please support this project by simply putting a Github
Star ⭐
>
> Share this library with friends on Twitter and everywhere else you can
>
> If you love this project [![donation](https://img.shields.io/badge/donate-❤-ff2244.svg)](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=GVBTWLRAZ7HB8)

## Import dependencies to your project

gradle (click to expand)

## gradle dependency

Replace the variable ${latestVersion} with the current latest
version: [![Maven Central](https://maven-badges.herokuapp.com/maven-central/io.github.astrapi69/data-api/badge.svg)](https://maven-badges.herokuapp.com/maven-central/io.github.astrapi69/data-api)

You can first define the version in the ext section and add than the following gradle dependency to
your project `build.gradle` if you want to import the core functionality of data-api:

define version in file gradle.properties

```
dataApiVersion=${latestVersion}
```

or in build.gradle ext area

```
dataApiVersion = "${latestVersion}"
```

then add the dependency to the dependencies area

```
implementation("io.github.astrapi69:data-api:$dataApiVersion")
```

# with new libs.versions.toml file

If you use the new libs.versions.toml file for new automatic catalog versions update

```
[versions]
data-api-version= "${latestVersion}"

[libraries]
data-api = { module = "io.github.astrapi69:data-api", version.ref = "data-api-version" }
```

then add the dependency to the dependencies area

```
implementation libs.data.api
```

Maven (click to expand)

## Maven dependency

Maven dependency is now on sonatype.
Check
out [sonatype repository](https://oss.sonatype.org/index.html#nexus-search;gav~io.github.astrapi69~data-api~~~)
for latest snapshots and releases.

Add the following maven dependency to your project `pom.xml` if you want to import the core
functionality of data-api:

Then you can add the dependency to your dependencies:


...

```xml

${latestVersion}
```

...

...

...

```xml

io.github.astrapi69
data-api
${data-api.version}

```

...

Snapshots (click to expand)

## 📸 Snapshots

[![Snapshot](https://img.shields.io/badge/dynamic/xml?url=https://oss.sonatype.org/service/local/repositories/snapshots/content/io/github/astrapi69/data-api/maven-metadata.xml&label=snapshot&color=red&query=.//versioning/latest)](https://oss.sonatype.org/content/repositories/snapshots/io/github/astrapi69/data-api/)

This section describes how to import snapshot versions into your project.
Add the following code snippet to your gradle file in the repositories section:

```
repositories {
//...
```

```groovy
maven {
name "Sonatype Nexus Snapshots"
url "https://oss.sonatype.org/content/repositories/snapshots"
mavenContent {
snapshotsOnly()
}
}
```
```
}
```

## Note

No animals were harmed in the making of this library.

# Donations

This project is kept as an open source product and relies on contributions to remain being developed. If you like this
library, please consider a donation

over paypal:





PayPal this





or over bitcoin(BTC) with this address:

bc1ql2y99q7e8psndhcc3gferk03esw3qqf677rhjy

Donation Bitcoin Wallet

or over FIO with this address:

FIO7tFMUVAA9cHiPPqKMfMXiSxHrbpiFyRYqTketNuM67aULuwjop

Donation FIO Wallet

or over Ethereum(ETH) with:

0xc057D159D3C8f3311E73568b334FF6fE82EB2b7D

Donation Ethereum Wallet

or over Ethereum Classic(ETC) with:

0xF708cA86D86C246B69c3F4BAe431eBbe0c2bfddD

Donation Ethereum Classic Wallet

or over Dogecoin(DOGE) with:

D5yi4Um8cpakd6yPRm2hGWuQ5nrVzhSSW1

Donation Dogecoin Wallet

or over Monero(XMR) with:

49bqeRQ7Bf49oJFVC72pqpe5hFbb62pfXDYPdLsadGGF81KZW2ZfrPZ8PbAVu5X2v1TYAspeczMya3cYQysNS4usRRPQHVw

Donation Monero Wallet

or over the donation buttons at the top.

## License

The source code comes under the liberal MIT License, making data-api great for all types of applications.

## Semantic Versioning

The versions of data-api are maintained with the Simplified Semantic Versioning guidelines.

Release version numbers will be incremented in the following format:

`..`

For detailed information on versioning for this project you can visit
this [wiki page](https://github.com/lightblueseas/mvn-parent-projects/wiki/Simplified-Semantic-Versioning)
.

## Want to Help and improve it? ###

The source code for data-api are on GitHub. Please feel free to fork and send pull requests!

Create your own fork of [astrapi69/data-api/fork](https://github.com/astrapi69/data-api/fork)

To share your changes, [submit a pull request](https://github.com/astrapi69/data-api/pull/new/develop).

Don't forget to add new units tests on your changes.

## Contacting the Developers

Do not hesitate to contact the data-api developers with your questions, concerns, comments, bug reports, or feature
requests.

- Feature requests, questions and bug reports can be reported at
the [issues page](https://github.com/astrapi69/data-api/issues).

## Credits

|**Nexus Sonatype repositories**|
| :---: |
|[![sonatype repository](https://img.shields.io/nexus/r/https/oss.sonatype.org/io.github.astrapi69/data-api.svg?style=for-the-badge)](https://oss.sonatype.org/index.html#nexus-search;gav~io.github.astrapi69~data-api~~~)|
|Special thanks to [sonatype repository](https://www.sonatype.com) for providing a free maven repository service for open source projects|
| |

|**javadoc.io**|
| :---: |
|[![Javadocs](http://www.javadoc.io/badge/io.github.astrapi69/data-api.svg)](http://www.javadoc.io/doc/io.github.astrapi69/data-api)|
|Special thanks to [javadoc.io](http://www.javadoc.io) for providing a free javadoc documentation for open source projects|
| |