Commit Graph

839 Commits

Author SHA1 Message Date
Jon Brisbin
f969f92acc #18, DATAREST-20, DATAREST-21, DATAREST-22 Bugfixes, re-vamp output method, JSONPE support
There were some issues with how results were being displayed in searches versus entity lists. This code changes the way all results are displayed by offereing several options for output. The default is to inline the entity in the response and page the results (defaults to 20). If the UA sends an `Accept` header of `application/x-spring-data-compact+json` or `text/uri-list`, however, SD REST will output a compact list of only links and will not inline the entities.

The method of output was completely rewritten to use HttpMessageConverters exclusively. Views and the subsequent ContentNegotiatingViewResolver machinery have been elimintated. This should make it easier to embed inside an existing Spring MVC application. This is also easily extendable so the user can plug in their own set of HttpMessageConverters for any output format they like (JAXB, Atom/XML, etc...).

Also added was JSONPE support. By setting the `jsonpParamName` property on the `RepositoryRestConfiguration` customization class, the user can change the default JSONP param name of `callback`. There's also a `jsonpOnErrParamName` property on that configuration (defaults to `null`) that will allow you to capture errors using JSONP. Normally this would not be possible using script element injection, but the REST controller changes the status code to 200 and pass your javascript function the actual response code and wraps the error as the second parameter.
2012-07-23 17:08:10 -05:00
Jon Brisbin
014271d7db Make parameter names for sorting and paging and what repositories to export configurable. 2012-07-20 16:54:35 -05:00
Jon Brisbin
395101497f Added documentation on how to integrate Spring Data REST with an existing Spring MVC application. Renamed a couple components to keep them consistent with the others. 2012-06-26 13:28:45 -05:00
Jon Brisbin
b3290c190c Changed how handler mappings work in Spring Data REST so that only paths that have Repositories exported on them are recognized by the controller.
This makes it easier to integrate the RepositoryRestController into an existing Spring MVC application because all you have to do is include the RepositoryRestMvcConfiguration JavaConfig bean into your existing application.

Also included some changes to the way views are resolved so that only views starting with "org.springframework.data.rest" will be recognized as our own special views.
2012-06-26 11:24:52 -05:00
Jon Brisbin
ebd50e96e7 Added script to load lots of random names pulled from a spreadsheet based on the 1990 Census. 2012-06-26 11:19:58 -05:00
Jon Brisbin
7696c96580 Fixed bugs in standalone configuration to make it easier to integrate with existing MVC applications. 2012-06-25 11:29:03 -05:00
Jon Brisbin
25b8813604 Change configuration to make it easier to integrate with an existing Spring MVC application by implementing special MVC mapping and HanndlerAdapter beans that only recognize Spring Data REST components. 2012-06-22 12:15:25 -05:00
Jon Brisbin
0a05216b18 Change default page size to 20. 2012-06-22 12:14:25 -05:00
Jon Brisbin
079661d19e Added support for paging and sorting. 2012-06-18 15:31:23 -05:00
Jon Brisbin
3e2a79d329 Added wiki documentation on API usage from curl. Also fixed a couple bugs, tweaked how rels are generated in some links. 2012-06-13 09:23:58 -05:00
Jon Brisbin
e0b3d84362 Forgot to add the new Entity to the JPA configuration for fix for #14. 2012-05-23 10:32:37 -05:00
Jon Brisbin
9fb07a0fe5 Fix for #14 where links in linked entities weren't being rendered correctly.
Also added another entity and Repository to push the Person entity down another step in the hierarchy to test this. This change mirrors the one I did to fix #12.
2012-05-23 10:03:50 -05:00
Jon Brisbin
987e386aba Fix for #12. Was passing the parent's path information to the self link generator rather than the child's. 2012-05-22 08:56:27 -05:00
Jon Brisbin
51a6728408 Updated dependencies to Spring Data JPA 1.1.0.RELEASE and Spring Data Commons 1.3.0.RELEASE 2012-05-16 14:07:23 -05:00
Jon Brisbin
df8a8912cd Changed the POST/create method to look for the query parameter "returnBody" and, if present and set to "true", return the entity in the body of the response. If it is not present or set to "false", then no content is returned in the body of the response, which is the current behaviour. 2012-05-16 10:48:22 -05:00
Jon Brisbin
0b6175f005 Address #10 by changing the way views are selected.
Now returns a ModelAndView with view names specific to the representation being sent back. Added a new helper class: RepositoryRestViewResolver that always hands back a default View unless overriden by the user who might set `customViewMappings` so that the exporter will use their own custom views instead of the default one.
2012-05-15 12:03:31 -05:00
Jon Brisbin
d177cc7753 Fixed a bug in saving entities via PUT. 2012-05-10 07:06:28 -05:00
Jon Brisbin
27322ddcf9 Fixed a failing test. 2012-05-09 10:02:17 -05:00
Jon Brisbin
e1e460e718 Added the ability to control the exporting of Repositories, query methods or entity fields by adding "exported = true|false" to the @RestResource annotation. 2012-05-09 09:47:52 -05:00
Jon Brisbin
29c839f5c6 Fix #8 by adding @EnableWebMvc et al to the Controller to ensure OpenEntityManagerInViewInterceptor is properly registered, as well as other Spring MVC helpers that are needed for things to work correctly. 2012-05-08 15:38:59 -05:00
Jon Brisbin
6c5bab7be3 Changed the way I look for ConversionServices to add to the default set of Converters by looking in the ApplicationContext rather than playing monkey games with @Configuration and @Autowired. 2012-05-07 13:28:04 -05:00
Jon Brisbin
e44506c4e0 Reorganize how configuration is loaded, add UUID/String Converters. 2012-05-07 10:26:27 -05:00
Jon Brisbin
ab7b497d72 Tweaks to source code by taking out unnecessary casts, slight tweak to how validators are handled, added validation documentation for the wiki. 2012-05-03 09:10:32 -05:00
Jon Brisbin
749382dad7 Documentation on handling events. Also added support for Spring Data Commons 1.3.0.RC2, which has improved metadata handling. 2012-05-02 16:24:53 -05:00
Jon Brisbin
57861b5536 Had to add some EntityManagerFactory manipulation to the test to get it to work now that the AppliationContexts are loaded in a different way then they were before. 2012-05-02 11:22:57 -05:00
Jon Brisbin
d549aaecee Tweaking query method support. 2012-05-02 11:09:27 -05:00
Jon Brisbin
b2564ceeca Tweaking build. 2012-05-01 15:10:23 -05:00
Jon Brisbin
28ed6fc57a Tweaked rel generation. 2012-05-01 09:42:30 -05:00
Jon Brisbin
393a3b56af Added query capability. 2012-05-01 09:32:32 -05:00
Jon Brisbin
d78126d018 Massive update that reworks the entire metadata system. 2012-04-30 16:13:11 -05:00
Jon Brisbin
077529e830 Added fuller comment(s) about Validators. 2012-04-26 14:31:44 -05:00
Jon Brisbin
4c0b4a8867 Add comment about Validators. 2012-04-26 14:17:22 -05:00
Jon Brisbin
2f0c20bd31 Added ValidatingRepositoryEventListener as a default bean so it's on all the time. 2012-04-26 13:53:53 -05:00
Jon Brisbin
7738b95b18 Changed name of "child" events to the more proper "link" events. 2012-04-26 13:10:57 -05:00
Jon Brisbin
fe9e485d81 Added ApplicationEvent handling and annotation-based extension mechanism. 2012-04-26 11:40:14 -05:00
Jon Brisbin
f91d91e9e4 Fixed a bug in dealing with PUT/update 2012-04-23 10:56:50 -05:00
Jon Brisbin
1f3e8ef58c Fixed a bug in dealing with PUT/update 2012-04-18 11:23:57 -05:00
Jon Brisbin
8d316a0c32 Fixed a bug in dealing with PUT/update 2012-04-18 11:21:23 -05:00
Jon Brisbin
e49014542c Re-org submodules, add debug compiler options 2012-04-11 15:44:20 -05:00