Comments (7)
Think the withPagingLinks
method might work. How would you include other links (i.e. links that aren't paging related) in the same links object in the document that is encoded? E.g. if the document links object was to include self
as a link as well as the paging links?
The other thing to bear in mind about paging links is they are not only limited to the top level (document) scope. For the spec:
To paginate the primary data, supply pagination links in the top-level links object. To paginate an included collection returned in a compound document, supply pagination links in the corresponding links object.
I think an example of the latter is providing pagination links in the links object on a has-many relationship. Would your paging links generator approach work for that too?
from json-api.
How would you include other links
You can combine those methods. If a link key is used more than once the last Link
value will be used
$encoder
->withPagingLinks([Link::FIRST, Link::FIRST, ...], $pageLinksGenerator)
->withLinks([...])
->encodeData(...);
The other thing to bear in mind about paging links is they are not only limited to the top level
Very good point. Similar kind of helper method is needed to be accessible from Schema
(from method getRelationships
in particular). I can't figure out syntax of that method however it should be similar to withPagingLinks
. These links will be placed in links
section of the relationship.
from json-api.
You can combine those methods
Ah yep, had missed that. Works nicely.
I can't figure out syntax of that method however it should be similar to
withPagingLinks
Definitely makes sense to try to keep the method signatures as close as possible.
from json-api.
That's another piece of paging puzzle
from json-api.
@neomerx what's the complication with that? I'd take that doc page with a pinch of salt as the example server response isn't JSON API, plus Ember Data v2.0 will be built to default to the JSON API spec.
from json-api.
Ember drives me crazy 😄 I'be been spending past two days with Ember documentation, samples and videos. I just want to do a simple form with fields for attributes and combo/drop-down-list/select for one of the relationships with all data taken from backend.
Looking for paging was't my priority but that link was the only I found. And yes you right it's not relevant 😄
from json-api.
Let's say we have data which were filtered and sorted before it's passed to Encoder
. How can we look at those data and say which filtering and sorting parameters were applied? We can't. Thus it's a fundamentally wrong idea to generate URLs based on provided data. The party which sends data to encoder should compose proper URLs. The lib currently provides all the means for that.
I'm closing this open question.
from json-api.
Related Issues (20)
- Include related resource into output in its entirety? HOT 11
- Include array of `Identifier`s HOT 5
- What's happened to include relationships in schema `getRelationships` method HOT 40
- Relationship data is parsed even if parser is not parsing the data HOT 13
- EncoderPropertiesTrait::withIncludePaths only works with arrays HOT 1
- subUrl property is private - BaseSchema HOT 6
- [Question] How to exclude relationships on collections by default? HOT 9
- Catch exceptions from json_encode HOT 7
- Error while using BaseQueryParser and Encoder together HOT 8
- Fetch a link from an existing Element HOT 2
- How to encode custom array NOT LARAVEL MODEL INSTANCE HOT 4
- How to create nested relationships HOT 3
- sparse fields filter relationships HOT 3
- Member names are converted to kebab-case HOT 1
- stricter typing with psalm
- Relationship data generator is invoked more than once if data is empty HOT 16
- Support interface/superclass based mapping in SchemaContainer HOT 1
- How can I fix incorrect links in my `included` compound document section? HOT 1
- Problem with PHP version 8.1
- accept same type on Encoder::instance
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from json-api.