2017-08-25 1 views
0

私はルーメンを初めて使用しています。私はMAC OS上でLumenを使い始め、それをドッカーコンテナ内で実行し始めました。ルーメンPOST APIコール付きアプリケーションバージョンのみを表示

次のようにdockerfileでアプリサービスは次のとおりです。

app: 
build: 
    context: ./ 
    dockerfile: app.dockerfile 
working_dir: /var/www 
volumes: 
    - ./:/var/www 
environment: 
    - "DB_PORT=3306" 
    - "DB_HOST=database" 

MySQLサービスが同様に完全に実行されています。開口部http://localhost:9002に私は、通常のルーメンアプリのバージョンを見ることができます:

Lumen (5.4.6) (Laravel Components 5.4.*) 

今、私はシンプルなSMSのAPIエンドポイントが承認されるようになりました。ユーザーは電話番号との間でやりとりする必要があります。私はdb内のデータと照合して結果を返します。

マイroutes.phpの読み取り:

$app->post('/outbound/sms', 'App\Http\Controllers\[email protected]'); 

マイSmsControllerは、同様のApp \のHttp \コントローラの下に存在しています。それは以下のようにPhoneNumberのモデルを使用しています。

use Illuminate\Http\Request; 
use App\Http\Controllers\Controller; 
use App\PhoneNumber; 
use Illuminate\Support\Facades\App; 

public function sendSms(Request $request) 
{ 

     try 
     { 
      $fromModel = PhoneNumber::findOrFail($request->input('from')); 
     } 
     catch(ModelNotFoundException $e) 
     { 
      return response()->json(['message'=> '', 'error'=> 'from is not found']); 
     } 

     try 
     { 
      $toModel = PhoneNumber::findOrFail($request->input('to')); 
     } 
     catch(ModelNotFoundException $e) 
     { 
      return response()->json(['message'=> '', 'error'=> 'to is not found']); 
     } 

     $this->validateSms($_REQUEST); 

     return response()->json(['message'=> 'inbound sms ok', 'error'=> '']); 
} 

マイの.htaccessファイルの読み取り:ポストマンからPOST API呼び出しを作ることに

<IfModule mod_rewrite.c> 
    <IfModule mod_negotiation.c> 
     Options -MultiViews 
    </IfModule> 

    Options +FollowSymLinks 
    RewriteEngine On 

    # Redirect Trailing Slashes If Not A Folder... 
    RewriteCond %{REQUEST_FILENAME} !-d 
    RewriteRule ^(.*)/$ /$1 [L,R=301] 

    # Handle Front Controller... 
    RewriteCond %{REQUEST_FILENAME} !-d 
    RewriteCond %{REQUEST_FILENAME} !-f 
    RewriteRule^index.php [L] 

    # Handle Authorization Header 
    RewriteCond %{HTTP:Authorization} . 
    RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}] 

</IfModule> 

http://localhost:9002/outbound/sms?from=1234567890&to=3456789&text=hi 

私は常に取得します応答のアプリバージョン:

Lumen (5.4.6) (Laravel Components 5.4.*) 

URLにindex.phpを追加しても機能しません。 何が問題なのですか?

更新: 最後に、正常に動作しているルートがあります。 routes.phpのコンテンツは、App \ Httpの代わりにroutes/web.phpにあるはずです。

今、私はNotFoundHttpExceptionを取得しています。以下は、スタックトレース::

in RoutesRequests.php (line 594) 
at Application->handleDispatcherResponse(array(0)) 

in RoutesRequests.php (line 532) 
at Application->Laravel\Lumen\Concerns\{closure}() 

in RoutesRequests.php (line 781) 
at Application->sendThroughPipeline(array(), object(Closure)) 

in RoutesRequests.php (line 534) 
at Application->dispatch(object(Request)) 

in RoutesRequests.php (line 475) 
at Application->run(object(Request)) 

in index.php (line 29) 

答えて

0

は、最後にそのNotFoundHttpException理由しまっている:

:下記のリンクごとのよう

$app = require __DIR__.'/../bootstrap/app.php'; 

$request = Illuminate\Http\Request::capture(); 

$app->run($request); 

ソリューション:

は、index.phpの中に以下の行を追加しました

http://laravel-tricks.com/tricks/notfoundhttpexception-lumen

この質問に間違いがある場合は、経路を/routes/web.phpにしてください。

関連する問題