UseMuffin / Webservice

Bringing the power of the CakePHP ORM to your favourite webservices
MIT License
89 stars 43 forks source link

How to get pagination data? #42

Open davidyell opened 7 years ago

davidyell commented 7 years ago

My api response contains a meta element with the pagination data for the response.

{
    "meta": {
        "pagination": {
            "page": 1,
            "next_page": 2,
            "previous_page": null,
            "total_results": 102,
            "total_pages": 6,
            "per_page": 20
        }
    },
    "body": {
        "results": [
            {
                "id": 530,
                "name": "Unlimited Broadband",
// etc

However when the response is parsed into a Resource this data is lost. I can't see it in Muffin\Webservice\Query which makes sense as it's not been executed yet. However when it is executed it will be converted into a Resource, so it's lost then also.

I would rather know from the preceding request if there is a next page or not rather than intentionally making a 404 request to find the last page.

r0kawa commented 5 years ago

Any updates on this for 2.0 release ? If no, is there a way I can send the pagination info to the output ?

$resources = $this->_transformResults($query->endpoint(), $resultArray['tickets']);

_transformResults only sending the result array itself

davidyell commented 5 years ago

We have yet to sufficiently test the release candidate to get the 2.0 release out. Once that is done there are plans to implement Pagination.

I currently use a fork in which I have implemented pagination. https://github.com/davidyell/Webservice/blob/develop/src/Pagination.php

It is on the roadmap though!

r0kawa commented 5 years ago

We have yet to sufficiently test the release candidate to get the 2.0 release out. Once that is done there are plans to implement Pagination.

I currently use a fork in which I have implemented pagination. https://github.com/davidyell/Webservice/blob/develop/src/Pagination.php

It is on the roadmap though!

Can I know how to use this if i just copy the pagination inside current Webservice plugin ? Is't straight forward enough for me to use inside my code ?