Skip to content
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

Yin Laravel 5 integration #27

Closed
scryba opened this issue Jun 18, 2016 · 2 comments
Closed

Yin Laravel 5 integration #27

scryba opened this issue Jun 18, 2016 · 2 comments

Comments

@scryba
Copy link

scryba commented Jun 18, 2016

How can i integrate woohoolabs/yin with laravel?

@kocsismate
Copy link
Member

kocsismate commented Jul 3, 2016

Sorry for answering late: unfortunately, I am not familiar with Laravel enough, so I cannot give you an adequate answer :/

But what you have to look for is passing a JsonApi object to your controllers (I suspect you also have to configure the service container to do so). As it can be seen at Yin's examples (https://github.com/woohoolabs/yin#examples), you are encouraged to return a PSR-7 response in your controllers and the fortunate thing is that Laravel can handle this situation (as written here: https://laravel.com/docs/5.1/requests#psr7-requests).

I don't think you have to do anything else! If you manage to integrate Yin to Laravel, please share your experiences with me here! So I am closing this issue for now, but feel free to reopen or comment if you feel like.

I wish you good luck!

@scryba
Copy link
Author

scryba commented Apr 6, 2018

Hello I have finally integrated Yin into laravel 5.6 with dingo API But stuck here.

Below is my code.

public function show()
{

    // Find the current route
    $exceptionFactory = new DefaultExceptionFactory();
    $deserializer = new JsonDeserializer();
    $request = new Request(ServerRequestFactory::fromGlobals(), $exceptionFactory, $deserializer);
    // Invoking the current action
    $jsonApi = new JsonApi($request, new Response(), $exceptionFactory);

    $id = $jsonApi->getRequest()->getAttribute("id");

    ////country
    $country = CountryRepository::getCountry($id);

    // Instantiating a book document
    $document = new CountryDocument(
        new CountryResourceTransformer()
    );
    // Responding with "200 Ok" status code along with the book document
    return $jsonApi->respond()->ok($document, $country);

} 

$id = $jsonApi->getRequest()->getAttribute("id");
returns null

my url is of the form http://api.example.com/countries/281615

Are mine implementing this the right way or do i have to use laravel/Dingo Request class Dingo\Api\Http\Request

my route

$api = app('Dingo\Api\Routing\Router');
$api->version('v1', function ($api) {
    $api->get('countries/{country}', 'App\Api\Controllers\UserController@show');
}

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants