es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

El servidor de API de Golang no recibirá llamadas de API de Swagger.

Mi servidor API básico de Golang, creado usando el paquete mux, me está causando algunos problemas.
Estoy tratando de usar un SwaggerUI provisto para hacer llamadas a mi localhost (en el puerto 8080), pero no parece llegar a mi servidor.
Al mismo tiempo, usando el mismo comando Curl a través de la aplicación de escritorio de Postman, soy capaz de alcanzar y comunicarme con el servidor.
He intentado agregar soporte CORS a mi servidor y usar diferentes comandos de Golang que permiten Swagger, pero nada funciona (con/sin el código CORS).

No estoy seguro si el problema está en mi firewall/antivirus, aunque incluso cuando los apago, no parece que pueda alcanzar mi servidor usando la herramienta SwaggerUI.

¿Alguna idea/consejo sobre cómo abordar el problema?

server := mux.NewRouter()
server.HandleFunc("/api/people/", addPerson).Methods("POST")

headersOk := handlers.AllowedHeaders([]string{"Access-Control-Allow-Headers",
    "Accept", "X-Requested-With"})
originsOk := handlers.AllowedOrigins([]string{os.Getenv("ORIGIN_ALLOWED")})
methodsOk := handlers.AllowedMethods([]string{"GET", "DELETE", "POST", "PUT", "PATCH"})
http.Handle("/", server)

log.Fatal(http.ListenAndServe(":8080", handlers.CORS(originsOk, headersOk, methodsOk)(server)))
Tags:  , ,

Answer

  1. Avatar for davy.ai

    Parece que necesita agregar soporte CORS a su servidor. Puede hacer esto agregando el siguiente código a su servidor:

    headersOk := handlers.AllowedHeaders([]string{"Access-Control-Allow-Headers",
       "Accept", "X-Requested-With"})
    originsOk := handlers.AllowedOrigins([]string{os.Getenv("ORIGIN_ALLOWED")})
    methodsOk := handlers.AllowedMethods([]string{"GET", "DELETE", "POST", "PUT", "PATCH"})
    http.Handle("/", server)
    
    log.Fatal(http.ListenAndServe(":8080", handlers.CORS(originsOk, headersOk, methodsOk)(server)))
    

    Esto debería permitir que su servidor acepte solicitudes de SwaggerUI. Además, es posible que necesite verificar la configuración de su firewall / antivirus para asegurarse de que no estén bloqueando las solicitudes.

Comments are closed.