80 lines
2.4 KiB
TeX
80 lines
2.4 KiB
TeX
\documentclass[]{article}
|
|
\usepackage[utf8]{inputenc}
|
|
\usepackage[spanish]{babel}
|
|
\usepackage{listings}
|
|
\usepackage{xcolor}
|
|
\usepackage[a4paper, total={6.5in, 8in}]{geometry}
|
|
|
|
\definecolor{codegreen}{rgb}{0,0.6,0}
|
|
\definecolor{codegray}{rgb}{0.5,0.5,0.5}
|
|
\definecolor{codepurple}{rgb}{0.58,0,0.82}
|
|
\definecolor{backcolour}{rgb}{0.95,0.95,0.92}
|
|
|
|
\lstdefinestyle{mystyle}{
|
|
backgroundcolor=\color{backcolour},
|
|
commentstyle=\color{codegreen},
|
|
keywordstyle=\color{magenta},
|
|
numberstyle=\tiny\color{codegray},
|
|
stringstyle=\color{codepurple},
|
|
basicstyle=\ttfamily\footnotesize,
|
|
breakatwhitespace=false,
|
|
breaklines=true,
|
|
captionpos=b,
|
|
keepspaces=true,
|
|
numbers=left,
|
|
numbersep=5pt,
|
|
showspaces=false,
|
|
showstringspaces=false,
|
|
showtabs=false,
|
|
tabsize=2
|
|
}
|
|
|
|
\lstset{style=mystyle}
|
|
|
|
\newcommand{\quotes}[1]{``#1''}
|
|
|
|
%opening
|
|
\title{Manejadores de rutas en HTTP}
|
|
\author{Asistente de OpenAI}
|
|
\date{}
|
|
|
|
|
|
\begin{document}
|
|
|
|
\maketitle
|
|
|
|
Un manejador de rutas en HTTP es una función encargada de responder a una solicitud HTTP. Suele estar asociado a una ruta específica (es decir, un punto final o una ruta en el servidor) y se llama cuando se hace una solicitud a esa ruta.
|
|
\\\\
|
|
Por ejemplo, considere el siguiente código:
|
|
|
|
\begin{lstlisting}[language=Go]
|
|
http.HandleFunc("/hola", func(w http.ResponseWriter, r *http.Request)) {
|
|
fmt.Fprintf(w, "Hola, mundo!")
|
|
}
|
|
\end{lstlisting}
|
|
|
|
En este código, la función anónima (es decir, \texttt{func(w http.ResponseWriter, r *http.Request) \{ fmt.Fprintf(w, "¡Hola, mundo!") \} }) es un manejador que responde a las solicitudes hechas a la ruta \texttt{/hola} escribiendo la cadena \quotes{\texttt{¡Hola, mundo!}} en la respuesta.
|
|
\\\\
|
|
Los manejadores también pueden ser implementados como métodos de tipos que cumplan con la interfaz \texttt{http.Handler}. Por ejemplo:
|
|
|
|
\begin{lstlisting}[language=Go]
|
|
func (m *messageHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) {
|
|
fmt.Fprintf(w, m.message)
|
|
}
|
|
\end{lstlisting}
|
|
|
|
En este caso, el método \texttt{ServeHTTP} es el manejador, y puede ser establecido como el manejador de una ruta con el siguiente código:
|
|
|
|
\begin{lstlisting}
|
|
http.Handle("/mensaje", &messageHandler{mensaje: "Hola, mundo!"})
|
|
\end{lstlisting}
|
|
|
|
En la firma del método \texttt{ServeHTTP}:
|
|
|
|
\begin{abstract}
|
|
|
|
\end{abstract}
|
|
|
|
\section{}
|
|
|
|
\end{document} |