DEV Community

Discussion on: API Rest con Go (Golang) y PostgreSQL Parte 1

Collapse
 
dbertaso profile image
Diego Bertaso

Saludos Sr. Orlando Monteverde, espero se encuentre bien.

Estoy siguiendo su post para crear una api rest con golang y postgresql y se me presenta el siguiente error en la primera parte del post durante el "go build": expected declaration, found 'go' en la instrucción "go serv.Start()" no se si se deba a un error en el documento o es que ha habido un cambio en la nueva version de golang.

Le incluyo el código de los archivos ** main.go** y server.go

*main.go *

package main

import (

"os"
"os/signal"
"log"
"localhost.com/go_postgres_microblog/internal/server"
Enter fullscreen mode Exit fullscreen mode

)

func main() {

    serv, err := sever.New("8000")
    if err != nil {
        log.Fatal(err)
    }
}

// start the server
go serv.Start()
Enter fullscreen mode Exit fullscreen mode

// Wait for an interrupt
c := make(chan os.Signal, 1)
signal.Notify(c, os.Interrupt)
<-const

//Attempt a graceful shutdown

serv.Close()
Enter fullscreen mode Exit fullscreen mode

server.go

// internal/server/server.go

package server

import (
"log"
"net/http"
"time"

"github.com/go-chi/chi"
Enter fullscreen mode Exit fullscreen mode

)

// Server is a base server configuration

type Server struct {
server *http.Server
}

// New inicialize a new server with configuration

func New(port string) (*Server, error) {

r := chi.NewRouter()

serv := &http.Server{
    Addr:         ":" + port,
    Handler:      r,
    ReadTimeout:  10 * time.Second,
    WriteTimeout: 10 * time.Second,
}

server = Server{server: serv}

return &server, nil
Enter fullscreen mode Exit fullscreen mode

}

// Close server resources

func (serv *Server) Close() error {
// TODO: add resource closure.
return nil
}

// Start the server.
func (serv *Server) Start() {
log.Printf("Server running on localhost%s", serv.server.Addr)
log.Fatal(serv.server.ListenAndServe())
}

Quedo atento a sus comentarios.
Muchas Gracias.

Diego Bertaso
@dbertaso
@dbertaso@gmail.com