Skip to content

Add support for Collection+JSON media type #482

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
wants to merge 1 commit into from

Conversation

gregturn
Copy link
Contributor

@gregturn gregturn commented Aug 20, 2016

No description provided.

@gregturn gregturn force-pushed the json-collection branch 4 times, most recently from fffb4ac to 247c9a6 Compare August 21, 2016 22:07
@gregturn
Copy link
Contributor Author

@olivergierke I fixed all the issues such that is works for current, spring42, spring43, spring43-next, and spring5.

@gregturn
Copy link
Contributor Author

gregturn commented Feb 2, 2017

@olivergierke Would you mind reviewing this PR to see if we can add JSON Collection support?

gregturn added a commit to gregturn/spring-hateoas that referenced this pull request Mar 7, 2017
Introduce support for media type application/vnd.collection+json. JSON Collection doesn't allow metadata at the top, so paging data can't be covered, however, navigational links are.
gregturn added a commit to gregturn/spring-hateoas that referenced this pull request Mar 13, 2017
Introduce support for media type application/vnd.collection+json. Collection+JSON doesn't allow metadata at the top, so paging data can't be covered, however, everything else fits.
gregturn added a commit to gregturn/spring-hateoas that referenced this pull request Mar 13, 2017
Introduce support for media type application/vnd.collection+json. Collection+JSON doesn't allow metadata at the top, so paging data can't be covered, however, everything else fits.
@gregturn gregturn changed the title Add support for JSON Collection media type Add support for Collection+JSON media type Mar 13, 2017
gregturn added a commit to gregturn/spring-hateoas that referenced this pull request Mar 14, 2017
Introduce support for media type application/vnd.collection+json. Collection+JSON doesn't allow metadata at the top, so paging data can't be covered, however, everything else fits.
@gregturn gregturn self-assigned this Mar 26, 2017
@gregturn gregturn added this to the 0.24 milestone Mar 26, 2017
gregturn added a commit to gregturn/spring-hateoas that referenced this pull request Mar 31, 2017
Introduce support for media type application/vnd.collection+json. Collection+JSON doesn't allow metadata at the top, so paging data can't be covered, however, everything else fits.
gregturn added a commit to gregturn/spring-hateoas that referenced this pull request Mar 31, 2017
Introduce support for media type application/vnd.collection+json. Collection+JSON doesn't allow metadata at the top, so paging data can't be covered, however, everything else fits.
@gregturn
Copy link
Contributor Author

Related issue: #16

@odrotbohm odrotbohm modified the milestones: 0.24, 1.0 M1 Oct 30, 2017
gregturn added a commit to gregturn/spring-hateoas that referenced this pull request Jan 10, 2018
Introduce support for media type application/vnd.collection+json. Collection+JSON doesn't allow metadata at the top, so paging data can't be covered, however, everything else fits.
gregturn added a commit to gregturn/spring-hateoas that referenced this pull request Jan 10, 2018
Introduce support for media type application/vnd.collection+json. Collection+JSON doesn't allow metadata at the top, so paging data can't be covered, however, everything else fits.
gregturn added a commit to gregturn/spring-hateoas that referenced this pull request Jan 10, 2018
Introduce support for media type application/vnd.collection+json. Collection+JSON doesn't allow metadata at the top, so paging data can't be covered, however, everything else fits.
gregturn added a commit to gregturn/spring-hateoas that referenced this pull request Jan 12, 2018
Introduce support for media type application/vnd.collection+json. Collection+JSON doesn't allow metadata at the top, so paging data can't be covered, however, everything else fits.
gregturn added a commit to gregturn/spring-hateoas that referenced this pull request Jan 12, 2018
Introduce support for media type application/vnd.collection+json. Collection+JSON doesn't allow metadata at the top, so paging data can't be covered, however, everything else fits.
gregturn added a commit to gregturn/spring-hateoas that referenced this pull request Jan 15, 2018
Introduce support for media type application/vnd.collection+json. Collection+JSON doesn't allow metadata at the top, so paging data can't be covered, however, everything else fits.

Also moved a little bit more into Affordance and SpringMvcAffordance to avoid using Spring MVC annotations directly in a given mediatype's AffordanceModel.
gregturn added a commit to gregturn/spring-hateoas that referenced this pull request Jan 17, 2018
Introduce support for media type application/vnd.collection+json. Collection+JSON doesn't allow metadata at the top, so paging data can't be covered, however, everything else fits.

Also moved a little bit more into Affordance and SpringMvcAffordance to avoid using Spring MVC annotations directly in a given mediatype's AffordanceModel.

Refactor bits of HAL-FORMS to reuse the new PropertyUtils, ensuring Jackson ignore annotations are taken into consideration. Also added MockMVC tests to show HAL-FORMS and Collection+JSON working together, against the same controller.
gregturn added a commit to gregturn/spring-hateoas that referenced this pull request Jan 17, 2018
Introduce support for media type application/vnd.collection+json. Collection+JSON doesn't allow metadata at the top, so paging data can't be covered, however, everything else fits.

Also moved a little bit more into Affordance and SpringMvcAffordance to avoid using Spring MVC annotations directly in a given mediatype's AffordanceModel.

Refactored bits of HAL-FORMS to reuse the new PropertyUtils, ensuring Jackson ignore annotations are taken into consideration. Also added MockMVC tests to show HAL-FORMS and Collection+JSON working together, against the same controller.
gregturn added a commit to gregturn/spring-hateoas that referenced this pull request Jan 18, 2018
Introduce support for media type application/vnd.collection+json. Collection+JSON doesn't allow metadata at the top, so paging data can't be covered, however, everything else fits.

Also moved a little bit more into Affordance and SpringMvcAffordance to avoid using Spring MVC annotations directly in a given mediatype's AffordanceModel.

Refactored bits of HAL-FORMS to reuse the new PropertyUtils, ensuring Jackson ignore annotations are taken into consideration. Also added MockMVC tests to show HAL-FORMS and Collection+JSON working together, against the same controller.
gregturn added a commit to gregturn/spring-hateoas that referenced this pull request Jan 19, 2018
Introduce support for media type application/vnd.collection+json. Collection+JSON doesn't allow metadata at the top, so paging data can't be covered, however, everything else fits.

Also moved a little bit more into Affordance and SpringMvcAffordance to avoid using Spring MVC annotations directly in a given mediatype's AffordanceModel.

Refactored bits of HAL-FORMS to reuse the new PropertyUtils, ensuring Jackson ignore annotations are taken into consideration. Also added MockMVC tests to show HAL-FORMS and Collection+JSON working together, against the same controller.
Introduce support for media type application/vnd.collection+json. Collection+JSON doesn't allow metadata at the top, so paging data can't be covered, however, everything else fits.

Also moved a little bit more into Affordance and SpringMvcAffordance to avoid using Spring MVC annotations directly in a given mediatype's AffordanceModel.

Refactored bits of HAL-FORMS to reuse the new PropertyUtils, ensuring Jackson ignore annotations are taken into consideration. Also added MockMVC tests to show HAL-FORMS and Collection+JSON working together, against the same controller.
@gregturn
Copy link
Contributor Author

gregturn commented Jan 19, 2018

@olivergierke I believe I've hammered everything out.

  • Complete suite of unit and integration tests including a Spring MVC REST controller using affordances, that both support HAL-FORMS and Collection+JSON, verifying they interoperate in each other's presence. Also includes ser/deser tests for ResourceSupport, Resource, Resources, and PagedResources.
  • Verification of spec fragments of JSON from http://amundsen.com/media-types/collection/examples/ in another unit test
  • An interactive web test where it creates a new object then queries the newly created object basd on location header.
  • Polished everything to have proper formatting.
  • Also used as much package-private visibility as possible, to limit surface of the API.
  • Refactored bits of HAL-FORMS to leverage the property-based utilities I added for Collection+JSON. This includes support for Jackson Ignore annotations in both Collection+JSON and HAL-FORMS.

So, if we can get this reviewed to push it forward, that would be great!

odrotbohm pushed a commit that referenced this pull request Apr 18, 2018
Introduce support for media type application/vnd.collection+json. Collection+JSON doesn't allow metadata at the top, so paging data can't be covered, however, everything else fits.

Also moved a little bit more into Affordance and SpringMvcAffordance to avoid using Spring MVC annotations directly in a given mediatype's AffordanceModel.

Refactored bits of HAL-FORMS to reuse the new PropertyUtils, ensuring Jackson ignore annotations are taken into consideration. Also added MockMVC tests to show HAL-FORMS and Collection+JSON working together, against the same controller.
odrotbohm added a commit that referenced this pull request Apr 18, 2018
@odrotbohm odrotbohm closed this Apr 18, 2018
@gregturn gregturn deleted the json-collection branch May 30, 2018 16:24
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants