¿Cómo enviar mensajes de validación a API en Laravel? -- php campo con laravel campo con api camp Relacionados El problema

How to send validation messages to API in Laravel?


1
vote

problema

Español

Estoy usando Laravel 8 y trabajando en las API. He creado clases de solicitud para la validación del formulario, pero cuando el desarrollador móvil golpeó los mensajes de validación de API que no se muestran según sea necesario. Este es mi método del controlador

   public function store(InvoiceStoreRequest $request) {     try {         return $this->responseWithSuccess(true,'Invoice Data',                $this->invoiceInterface->store($request), Response::HTTP_OK);     }catch (Exception $exception){         return $this->responseWithError($exception->getMessage(),Response::HTTP_OK);     } }   

Aquí estoy usando FIVOICESTORERREESTSEST clase para validar el formulario. Código para invoicestoreReSest está abajo

  public function rules() {     return [         'id' => ['required', 'string'],         'invoice_date' => ['required', 'date'],         'reference_number' => ['required'],         'vendor_id' => ['required'],         'invoice_net_total' => ['required','regex:/^d*(.d{1,2})?$/'],         'invoice_tax_total' => ['required', 'regex:/^d*(.d{1,2})?$/'],         'invoice_gross_total' => ['required', 'regex:/^d*(.d{1,2})?$/'],         'item_count' => ['required', 'numeric'],         'invoice_type' => ['required','regex:(order|refund)'],         'provider' => ['required'],         'detail_url' => ['required'],         'invoice_photo_url' => ['required'],     ]; }   

y para mostrar mensajes personalizados,

  public function messages() {     return [         'invoice_type.regex' => 'The invoice type format is invalid. Invoice Type should be [order,refund]',         'invoice_net_total.regex' => 'Invoice Net must be Decimal or Numeric value.',         'invoice_tax_total.regex' => 'Invoice Tex must be Decimal or Numeric value.',         'invoice_gross_total.regex' => 'Invoice Gross must be Decimal or Numeric value.',     ]; }   

funciona bien en el cartero. Pero cuando el desarrollador móvil golpeó la API, obtiene un error con 422 una entidad sin procesar pero no mostrar mensajes de error. Quiero mostrar mensajes de error.
Como puedo resolver esto. Gracias

Original en ingles

I am using Laravel 8 and working on API's. I have created Request Classes for Form validation but when mobile developer hit api validation messages not displaying as required. This is my controller method

 public function store(InvoiceStoreRequest $request) {     try {         return $this->responseWithSuccess(true,'Invoice Data',                $this->invoiceInterface->store($request), Response::HTTP_OK);     }catch (\Exception $exception){         return $this->responseWithError($exception->getMessage(),Response::HTTP_OK);     } } 

here i am using InvoiceStoreRequest class to validate form. Code for InvoiceStoreRequest is below

public function rules() {     return [         'id' => ['required', 'string'],         'invoice_date' => ['required', 'date'],         'reference_number' => ['required'],         'vendor_id' => ['required'],         'invoice_net_total' => ['required','regex:/^\d*(\.\d{1,2})?$/'],         'invoice_tax_total' => ['required', 'regex:/^\d*(\.\d{1,2})?$/'],         'invoice_gross_total' => ['required', 'regex:/^\d*(\.\d{1,2})?$/'],         'item_count' => ['required', 'numeric'],         'invoice_type' => ['required','regex:(order|refund)'],         'provider' => ['required'],         'detail_url' => ['required'],         'invoice_photo_url' => ['required'],     ]; } 

and for displaying custom messages,

public function messages() {     return [         'invoice_type.regex' => 'The invoice type format is invalid. Invoice Type should be [order,refund]',         'invoice_net_total.regex' => 'Invoice Net must be Decimal or Numeric value.',         'invoice_tax_total.regex' => 'Invoice Tex must be Decimal or Numeric value.',         'invoice_gross_total.regex' => 'Invoice Gross must be Decimal or Numeric value.',     ]; } 

It work fine on postman. But when Mobile developer hit API he get error with 422 Unprocessable Entity but not showing error messages. I want to show error messages.
how can i solve this. Thanks

        
         
         

Lista de respuestas

2
 
vote
vote
La mejor respuesta
 

prueba algo como esto:

  func1().then(func2()).catch(...); 0  
 

Try something like this:

 $validator = Validator::make(request()->all(), [           'name'     => 'required',           // ... Rules          ]);          if ($validator->fails()) {             return response()->json([               'errors' => $validator->errors(),               'status' => Response::HTTP_BAD_REQUEST,             ], Response::HTTP_BAD_REQUEST);         }          MODEL::create($validator->validated());          return response()->json([           'data'   => [],           'status' => Response::HTTP_CREATED,         ], Response::HTTP_CREATED); 
 
 
2
 
vote

debe agregar

  func1().then(func2()).catch(...); 1  

a su encabezado de solicitud cuando llame a API

Por ejemplo:

ingrese la descripción de la imagen aquí

 

You should add

Accept:application/json 

to your request header when call api

for example:

enter image description here

 
 

Relacionados problema

4  ¿API de control remoto o cómo empezar?  ( Remote control api or how to start ) 
Si, por cualquier cambio, quiero desarrollar mi propia herramienta de intercambio de pantalla remota para incluir en mi propio CRM, ¿a dónde debo ir? No ent...

0  Pregunta de desarrollo del módulo de Drupal relacionado con las cookies y las redirecciones  ( Drupal module development question relating to cookies and redirects ) 
Ayuda por favor? Deseo desarrollar un módulo para hacer algo muy simple con PHP. Soy desafiado por la API de Drupal. Estoy usando la versión 6. METAL: 1) ...

4  ¿Cómo usar la API de contacto constante?  ( How to use constant contact api ) 
Quiero usar API del contacto constante y desea insertar el correo electrónico del usuario utilizando PHP mientras se registre el usuario en el sitio. Por fa...

3  ¿Alguien con éxito usando Commission Junction API?  ( Anyone successfully using commission junction api ) 
¿Alguien está utilizando con éxito los servicios web de CJ? SOLO SIENTO java.lang.NullPointerException S A pesar de que mi aplicación es .NET (claramente su...

0  ¿Hay alguna manera de activar una actualización de hardware (también conocido como administrador de dispositivos) usando .NET?  ( Is there a way to trigger a hardware refresh aka device manager using net ) 
No me importa si solo es posible en la última versión de Windows, pero me pregunto si hay una manera de activar esto usando .NET: Hardware del administrado...

6  Registro con fluidez Castle Windsor - ¿Qué hace la selección ()?  ( Castle windsor fluent registration what does pick do ) 
Cuando use la inscripción automática con Castle Windsor, veo a las personas que hacen cosas como _container.Register( AllTypes.Pick().FromAssembly(Assemb...

2  Cómo forzar los gráficos de impresión Java en 300DPI  ( How to force java print graphics in 300dpi ) 
Mientras buscaba un problema, de alguna manera, la API de impresión Java está lisiada de limitación de que todas las imágenes enviadas a la impresora deben im...

4  ¿Hay una biblioteca o API de Net para interactuar con / editar la metabase IIS?  ( Is there a net library or api to interact with edit the iis metabase ) 
... o estoy atascado rodando mis propias funciones "XML Tajado". Me gustaría crear una pequeña aplicación de tareas para que pueda volver a apuntar rápidament...

45  ¿Cómo validar los ID de video de YouTube?  ( How to validate youtube video ids ) 
Quiero validar ID de video de YouTube Sbumited en la URL a uno de mis sitios antes de acceder a la API de YouTube, pero no sé cuáles son los caracteres permit...

0  MySQL_Ping () C API falla  ( Mysql ping c api fails ) 
La conexión a MYSQL se está perdiendo después de 8 horas (I.E afer Wait_TimeOut Varibale Times Out). Estoy tratando de usar MySQL_Ping () para volver a conect...




© 2022 respuesta.top Reservados todos los derechos. Centro de preguntas y respuestas reservados todos los derechos