Closed Deiru2k closed 8 years ago
Hi!
While this is a very good idea; I'm not sure this is something that is easy to integrate into Tornado-JSON, or is a good fit for it.
When I first wrote Tornado-JSON, it was with the intention that it would be used to write relatively simple APIs; hence why I chose JSend as the specification for responses. It seems like you want a much more fully-features specification, such as JSON API. This is difficult to integrate with Tornado-JSON as it stands right now because it is geared towards simplicity.
That being said, this is certainly something that is POSSIBLE to integrate so I would love it if you could provide maybe an example of what the interface or implementation could look like, i.e., how you would go about adding pagination to responses.
If you wanted to implement this yourself, you could simply create your own Mixin class similar to JSendMixin
but one which defined a custom standard to your liking and then have an APIHandler
class multi-inherit from that. You would also have to implement your own schema.validate
method of course.
Going to close this because I don't think this would be in appropriate scope. A very easy way to accomplish this would be to simply add the _meta
keyword your actual data response, i.e.,:
{"status": "success", "data": {"_meta": ..., "foo": "bar", ...}}
This would then still fit within the confines of JSend.
Right now, if I a successful request is served, {'status': 'success', 'data': 'YOURDATA'} will be in an output. It would be nice if one could provide additional information (i.e. total number of objects and page offset for pagination) inside an additional parameter, like {'status': 'success', 'data': 'YOURDATA', "_meta": {"offset" 10, "totalCount": 24}}. I know that this is kinda against JSSend specification, but I think that this will be a very nice feature.