
Consulta sobre la ginebra
@Depado Acabo de ver tu respuesta. Muchas gracias por el detalle de la explicación.Por cierto, en cuanto a la pregunta BindJSON, el error me dice lo que está mal, pero no me dice cuál es el cuerpo real de la petición. Por ejemplo, el problema de la vinculación requerida de zero int. El error sólo me dirá que la vinculación falló porque el payload json no proporciona un campo numérico. Pero la verdadera historia es que el valor de ese número es 0. Sin ver el cuerpo real, a veces es difícil de depurar.
Normalmente cuando me encuentro con algo así simplemente comento la línea BindJSON y vuelco la petición usando ioutil.ReadAll ^^ No sé si hay una forma sencilla de “intentar enlazar JSON y si falla, mostrar la consulta”
@the-maldridge ¿Explicar lo que no entiendo en mi pregunta? o ¿Explicar lo que no entiendo en tus palabras? Lo que no entiendo en mi pregunta es que no sé por qué debo usar block aquí porque sin él, el código se puede seguir ejecutando. Lo que no entiendo en tus palabras es que no las entiendo en absoluto (quiero decir completamente). Lo siento, no soy un hablante nativo de inglés. Para ser más específica, cuando consulto el diccionario, cosmetic significa artículo de tocador para chicas. No sé qué es lo que hay que hacer aquí. Y jogging significa correr lentamente. No sé si quieres decir que añadir un bloque aquí hará que corras más despacio que sin él o no. No lo digo en serio. Sólo estoy tratando de responder a su pregunta.
Parámetros de consulta de Gin Gonic
Cuando se ejecuta el ejemplo anterior utilizando el comando curl anterior, devuelve un error. Porque el ejemplo utiliza binding: “required” para Password. Si se utiliza binding:”-” para la contraseña, entonces no dará error al ejecutar el ejemplo anterior de nuevo.
Normalmente, JSON sustituye los caracteres especiales de HTML por sus entidades unicode, por ejemplo, < se convierte en \u003c. Si desea codificar dichos caracteres literalmente, puede utilizar PureJSON en su lugar. Esta característica no está disponible en Go 1.6 e inferior.
Hay algunos enfoques que puede utilizar para realizar un apagado o reinicio graceful. Puedes hacer uso de paquetes de terceros construidos específicamente para eso, o puedes hacer lo mismo manualmente con las funciones y métodos de los paquetes incorporados.
En caso de que estés usando Go 1.8 o una versión posterior, puede que no necesites usar esas librerías. Considere la posibilidad de utilizar el método Shutdown() incorporado en http.Server para realizar cierres con gracia. El ejemplo de abajo describe su uso, y tenemos más ejemplos usando gin aquí.
Si desea registrar esta información en un formato determinado (por ejemplo, JSON, valores clave o algo más), entonces puede definir este formato con gin.DebugPrintRouteFunc. En el ejemplo de abajo, registramos todas las rutas con el paquete de registro estándar, pero puede utilizar otras herramientas de registro que se adapten a sus necesidades.
Gin bind query params
Gin es un framework web escrito en Go (Golang). Cuenta con una API similar a la de Martini con un rendimiento que es hasta 40 veces más rápido gracias a httprouter. Si necesitas rendimiento y buena productividad, te encantará Gin.
Cuando se ejecuta el ejemplo anterior utilizando el comando curl anterior, devuelve un error. Porque el ejemplo utiliza binding: “required” para la contraseña. Si usa binding:”-” para Password, entonces no devolverá el error al ejecutar el ejemplo anterior de nuevo.
Hay algunos enfoques que puede utilizar para realizar un apagado o reinicio con gracia. Puede hacer uso de paquetes de terceros construidos específicamente para eso, o puede hacer lo mismo manualmente con las funciones y métodos de los paquetes incorporados.
En caso de que estés usando Go 1.8 o una versión posterior, puede que no necesites usar esas librerías. Considere la posibilidad de utilizar el método Shutdown() incorporado en http.Server para realizar cierres con gracia. El ejemplo de abajo describe su uso, y tenemos más ejemplos usando gin aquí.
Gin bind form-data
En este tutorial, te mostraremos cómo usar el binding de Gin. Te guiaremos a través de la validación de la carga útil de la solicitud, la escritura de la validación personalizada utilizando la reflexión y el módulo validador, y la construcción de enlaces personalizados para varios formatos, como TOML, etc.
Las etiquetas struct anteriores validan el correo electrónico con una expresión regular genérica, el teléfono con el estándar internacional E.164 y el código de país con el estándar de dos letras ISO-3166-1. Por ejemplo, acepta el siguiente ejemplo de carga útil JSON para el proceso de vinculación:
Anteriormente, hemos utilizado algunos formatos estándar para la validación. Pero, a menudo tenemos que definir formatos personalizados para validar entradas de usuario específicas del dominio. Por ejemplo, puedes utilizar etiquetas struct para validar un formato de código de producto personalizado. El paquete de validación ofrece muchos ayudantes útiles para la validación de cadenas.
En los ejemplos anteriores, hemos utilizado la función AbortWithError para enviar un código de error HTTP al cliente, pero no hemos enviado un mensaje de error significativo. Así que podemos mejorar los endpoints enviando un mensaje de error de validación significativo como salida JSON: