Laravel.io
Route::group(['middleware' => 'auth.basic'], function (){
	Route::get('/api/v1/users/{id?}', [function($id = null) {
		$select = ['id', 'nickname', 'email', 'avatar_url', 'sex', 'birth_date', 'city_name'=>'city.name'];

		if ($id == null) {
			$users = \App\Models\User::all($select);
		} else {
			$users = \App\Models\User::find($id, $select);
		}
		return Response::json(array(
			'error' => false,
			'users' => $users,
			'status_code' => 200
		));
	}]);
});

Please note that all pasted data is publicly available.