私はルーメンを初めて使用しています。私は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)