Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

148
Vistas
Validación de solicitud de API de Laravel

Hola: Estoy escribiendo una api con Laravel.

Cuando trato de usar la validación de solicitudes en el controlador, aparece un método 405 no permitido. Cuando elimino la validación de la solicitud, todo funciona sin problemas.

Aquí está mi ruta:

 Route::post('product/create', 'Api\v1\ProductController@create');

Aquí está mi controlador:

 <?php namespace App\Http\Controllers\Api\v1; use App\Http\Requests\CreateProduct; use Illuminate\Http\Request; use App\Http\Controllers\Controller; use App\Handlers\Products; use Illuminate\Support\MessageBag; class ProductController extends Controller { /** * Create Product. */ public function create(CreateProduct $request) { echo 'product created...'; } }

Aquí está mi validador de solicitud:

 <?php namespace App\Http\Requests; use Illuminate\Foundation\Http\FormRequest; class CreateProduct extends FormRequest { /** * Determine if the user is authorized to make this request. * * @return bool */ public function authorize() { return true; } /** * Get the validation rules that apply to the request. * * @return array */ public function rules() { return [ 'title' => 'required', 'price' => 'required', 'short_description' => 'required' ]; } /** * Set custom validation messages. * * @return array */ public function messages() { return [ 'title.required' => 'Please enter a title.', 'price.required' => 'Please enter a price.', 'short_description.required' => 'Please enter a short description.' ]; } }

Cuando elimino "CreateProduct $request" del método "crear", todo funciona.

¿Cómo puedo usar la validación de solicitudes de Laravel para llamadas a la API?

about 4 years ago · Santiago Trujillo
3 Respuestas
Responde la pregunta

0

como sugirió @oseintow:

 if ($excepción instancia de ValidationException) {
    devolver respuesta()->json(['errores'=>$excepción->errores()], JsonResponse::HTTP_UNPROCESSABLE_ENTITY);
}
about 4 years ago · Santiago Trujillo Denunciar

0

Establezca la validación en el controlador del producto.

 public function create(Request $request) { $rules=array( 'title' => 'required', 'price' => 'required', 'short_description' => 'required' ); $messages=array( 'title.required' => 'Please enter a title.', 'price.required' => 'Please enter a price.', 'short_description.required' => 'Please enter a short description.' ); $validator=Validator::make($request->all(),$rules,$messages); if($validator->fails()) { $messages=$validator->messages(); $errors=$messages->all(); return $this->respondWithError($errors,500); } echo 'product created...'; }
about 4 years ago · Santiago Trujillo Denunciar

0

Tuve el mismo problema cuando estaba probando mi API con PostMan. Resultó que estaba usando los encabezados incorrectos (Accept y Content-Type deberían ser application/json pero en su lugar estaba usando application/x-www-form-urlencoded para Content-Type).

Después de corregir que la solicitud personalizada funcionaba bien.

about 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda