Skip to content

Commit

Permalink
Release 1.0.0
Browse files Browse the repository at this point in the history
  • Loading branch information
gsteinacker committed Oct 12, 2017
1 parent b63df4d commit 623ed24
Show file tree
Hide file tree
Showing 3 changed files with 10 additions and 22 deletions.
28 changes: 8 additions & 20 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,40 +11,27 @@ representations of REST resources using Jackson.
[![codecov](https://codecov.io/gh/otto-de/edison-hal/branch/master/graph/badge.svg)](https://codecov.io/gh/otto-de/edison-hal)
[![Dependency Status](https://www.versioneye.com/user/projects/5790e6b326c1a40035ecd1e8/badge.svg?style=flat)](https://www.versioneye.com/user/projects/5790e6b326c1a40035ecd1e8)

RELEASE CANDIDATE - almost done.

The current implementation is supporting HAL compliant links and
embedded resources, including curies (compact URIs).

The full media-type as defined in https://tools.ietf.org/html/draft-kelly-json-hal-08
is supported by edison-hal.

The current library is already in production at otto.de and should be more or less stable but
still might have some issues.

Please provide feedback, if something is not working as expected.

## 2. About

At otto.de, microservices should only communicate via REST APIs with other
microservices. HAL is a nice format to implement the HATEOAS part
of REST. Edison-hal is a simple library, to make it easy to produce
of REST. Edison-HAL is a library to make it easy to produce
and consume HAL representations for your REST APIs.

Currently, there are only a couple of libraries supporting HAL and even
less that support the full media type including all link properties,
curies (compact URIs) and embedded resources.
curies (compact URIs) and embedded resources.

Spring HATEOAS, for example, is lacking many link properties, such as
title, name, type and others.

## 3. Features

Creating HAL representations:
* Links with all specified attributes like rel, href, profile, type, name, title, etc. pp.
* Embedded resources
* Embedded resources, even deeply nested
* Curies in links and embedded resources
* Generation of HAL representations using Jackson using annotated classes
* Generation of HAL representations using Jackson annotations

Parsing HAL representations:
* Mapping application/hal+json to Java classes using Jackson. This also works for deeply nested embedded items.
Expand All @@ -70,7 +57,7 @@ Before using this library, you should have a good understanding of the Hypertext

```gradle
dependencies {
compile "de.otto.edison:edison-hal:1.0.0.RC6",
compile "de.otto.edison:edison-hal:1.0.0",
...
}
```
Expand Down Expand Up @@ -663,10 +650,11 @@ in different ways.
*New Features / API extensions*
* It is now possible to configure the link-relation types that are serialized as an array of links.
* Parsing of nested embedded items
* Support for curies in nested embedded items
* Support for curies in deeply nested embedded items
* The HalParser now supports multiple type infos so more than one link-relation type can
be configured with the type of the embedded items.
* Support for parsing and accessing attributes that were not mapped to properties of HalRepresentations
* Added TRACE logging to Traverson to make it easier to analyse the behaviour of the Traverson.

### 1.0.0.RC5

Expand Down
2 changes: 1 addition & 1 deletion build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ apply plugin: 'maven'
apply plugin: 'jacoco'
apply from: 'dependencies.gradle'

version='1.0.0.RC6-SNAPSHOT'
version='1.0.0'
group='de.otto.edison'

repositories {
Expand Down
2 changes: 1 addition & 1 deletion src/main/java/de/otto/edison/hal/Embedded.java
Original file line number Diff line number Diff line change
Expand Up @@ -320,7 +320,7 @@ public Embedded build() {
public static class EmbeddedSerializer extends JsonSerializer<Embedded> {

@Override
public void serialize(Embedded value, JsonGenerator gen, SerializerProvider serializers) throws IOException, JsonProcessingException {
public void serialize(Embedded value, JsonGenerator gen, SerializerProvider serializers) throws IOException {
gen.writeObject(value.items);
}
}
Expand Down

0 comments on commit 623ed24

Please sign in to comment.