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