\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}