Dingo APIに基づいて Laravel で API を作成しています。
私のルートには、次のものがあります。
Route::api('v1', function () {
Route::resource('object', 'My\Namespace\MyController');
});
そしてMyControllerで:
class MyController extends \Illuminate\Routing\Controller {
use Dingo\Api\Routing\ControllerTrait;
public function index() {
return MyObject::all();
}
public function show($id) {
return MyObject::findOrFail($id);
}
}
これは、 が動作することを意味しapi.domain.com/object
ますMyController@index
。データベースに項目がないため、空の json 配列が出力されます[]
。
api.domain.com/object/123
を呼び出しますMyController@show(123)
。これはhttps://github.com/dingo/api/wiki/Responsesによるものです。ただし、データベースに結果がないため、次のようになります。
No query results for model [My\Namespace\MyObject].
代わりに、これにより適切な RESTful エラーが発生することが期待されます。それ、どうやったら出来るの?
MyObject のコードは特別なものではなく、 を拡張する空のクラスIlluminate\Database\Eloquent\Model
です。
私は Laravel 4.2 を使用しています。5 は Dingo ではまだサポートされていません。