From 450c3c4202c219af87fbb7bc82ef284c0cb69a4c Mon Sep 17 00:00:00 2001 From: Gabriel Andretta Date: Mon, 11 Oct 2010 17:38:50 -0300 Subject: [PATCH] syncs up the README's spanish translation Adds the 'Accessing the Request Object' section. Signed-off-by: Konstantin Haase --- README.es.rdoc | 49 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) diff --git a/README.es.rdoc b/README.es.rdoc index 8d997bb5..6ce928a1 100644 --- a/README.es.rdoc +++ b/README.es.rdoc @@ -613,6 +613,55 @@ la petición usando pass: Se sale inmediatamente del bloque de la ruta y se le pasa el control a la siguiente ruta que coincida. Si no coincide ninguna ruta, se devuelve un 404. +== Accediendo al objeto de la petición + +El objeto de la petición entrante puede ser accedido desde el nivel de la +petición (filtros, rutas y manejadores de errores) a través del método +`request`: + + # app corriendo en http://ejemplo.com/ejemplo + get '/foo' do + request.body # cuerpo de la petición enviado por el cliente (ver más abajo) + request.scheme # "http" + request.script_name # "/ejemplo" + request.path_info # "/foo" + request.port # 80 + request.request_method # "GET" + request.query_string # "" + request.content_length # longitud de request.body + request.media_type # tipo de medio de request.body + request.host # "ejemplo.com" + request.get? # verdadero (hay métodos análogos para los otros verbos) + request.form_data? # falso + request["UNA_CABECERA"] # valor de la cabecera UNA_CABECERA + request.referer # la referencia del cliente o '/' + request.user_agent # user agent (usado por la condición :agent) + request.cookies # hash de las cookies del browser + request.xhr? # es una petición ajax? + request.url # "http://ejemplo.com/ejemplo/foo" + request.path # "/ejemplo/foo" + request.ip # dirección IP del cliente + request.secure? # falso + requuest.env # hash de entorno directamente entregado por Rack + end + +Algunas opciones, como script_name o path_info pueden +también ser escritas: + + before { request.path_info = "/" } + + get "/" do + "todas las peticiones llegan acá" + end + +El objeto request.body es una instancia de IO o StringIO: + + post "/api" do + request.body.rewind # en caso de que alguien ya lo haya leído + datos = JSON.parse request.body.read + "Hola #{datos['nombre']}!" + end + == Configuración Ejecutar una vez, en el inicio, en cualquier entorno: