Support dingo/api
Support dingo/api

Dingo\Api\Priviver\LumenServiceProvier에서 소스 가져옴

Functional test에서 한개의 test에서 여러버 dingo로 구현된 api를 호출하는 경우
처음 api만 동작을 하고, 그 이후의 api 호출시 다음의 오류 발생

Argument 1 passed to Dingo\Api\Http\RateLimit\Handler::rateLimitRequest()
must be an instance of Dingo\Api\Http\Request, instance of Illuminate\Http\Request given,
called in /Users/yhbyun/work/ecplaza/seed/vendor/dingo/api/src/Http/Middleware/RateLimit.php
on line 67 and defined

이는 dingo가 서비스 등록시에 addRequestMiddlewareToBeginning 을 호출해서
Dingo\Api\Http\Middleware\Request를 middleware의 스택의 맨처음에 넣는다.
이 middleware는 Illuminate\Http\Request에서 Dingo\Api\Http\Request를 생성해서
파이프라인에 Dingo\Api\Http\Request를 넘기는 역할을 하고, dingo의 다른 middleware는
이를 가정하고 개발되어 있다.

처음 api 호출시에는 Request middleware가 스택의 처음에 있지만, 다음 호출시에는
dingo의 서비스 등록루틴을 호출하지 않기 때문에 Rquest middleware가 스택에 존재하지
않는다. 그래서 위의 오류가 발생을 한다. 이를 해결하기 위해서 api 호출시 불려지는
메서드 handle()에 Request middleware를 스택의 처음에 추가하는 루틴을 추가했다.

yhbyun/Codeception,yhbyun/Codeception