Skip to content

Commit a4ebe16

Browse files
committed
working sample application
1 parent 200f70c commit a4ebe16

File tree

8 files changed

+45
-55
lines changed

8 files changed

+45
-55
lines changed

go/samples/http/Dockerfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,4 +25,4 @@ COPY --from=build-env /$APP_NAME .
2525
EXPOSE 8081
2626

2727
# Start app
28-
CMD ["./sqlcommenter-http", "--db_engine=mysql"]
28+
CMD ["./sqlcommenter-http", "--db_engine=pg"]

go/samples/http/curls/index.sh

Lines changed: 0 additions & 4 deletions
This file was deleted.

go/samples/http/go.mod

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -15,17 +15,18 @@ require (
1515
)
1616

1717
require (
18-
github.com/julienschmidt/httprouter v1.3.0
1918
github.com/lib/pq v1.10.7
2019
go.opentelemetry.io/otel v1.11.1
2120
)
2221

22+
require github.com/google/sqlcommenter/go/gorrila/mux v0.0.1-beta // indirect
23+
2324
require (
2425
github.com/go-logr/logr v1.2.3 // indirect
2526
github.com/go-logr/stdr v1.2.2 // indirect
26-
github.com/google/sqlcommenter/go/core v0.0.1-beta
27-
github.com/google/sqlcommenter/go/database/sql v0.0.1-beta
28-
github.com/google/sqlcommenter/go/net/http v0.0.1-beta
27+
github.com/google/sqlcommenter/go/core v0.0.5-beta
28+
github.com/google/sqlcommenter/go/database/sql v0.0.3-beta
29+
github.com/google/sqlcommenter/go/net/http v0.0.3-beta // indirect
2930
go.opentelemetry.io/otel/trace v1.11.1 // indirect
3031
golang.org/x/sys v0.0.0-20220927170352-d9d178bc13c6 // indirect
3132
)

go/samples/http/go.sum

Lines changed: 17 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
github.com/DATA-DOG/go-sqlmock v1.5.0 h1:Shsta01QNfFxHCfpW6YH2STWB0MudeXXEWMr20OEh60=
2-
github.com/davecgh/go-spew v1.1.0 h1:ZDRjVQ15GmhC3fiQ8ni8+OwkZQO4DARzQgrnXU1Liz8=
2+
github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
33
github.com/felixge/httpsnoop v1.0.3 h1:s/nj+GCswXYzN5v2DpNMuMQYe+0DDwt5WVCU6CWBdXk=
44
github.com/felixge/httpsnoop v1.0.3/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U=
55
github.com/go-logr/logr v1.2.2/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A=
@@ -9,40 +9,37 @@ github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag=
99
github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE=
1010
github.com/go-sql-driver/mysql v1.6.0 h1:BCTh4TKNUYmOmMUcQ3IipzF5prigylS7XXjEkfCHuOE=
1111
github.com/go-sql-driver/mysql v1.6.0/go.mod h1:DCzpHaOWr8IXmIStZouvnhqoel9Qv2LBy8hT2VhHyBg=
12-
github.com/google/go-cmp v0.5.8 h1:e6P7q2lk1O+qJJb4BtCQXlK8vWEO8V1ZeuEdJNOqZyg=
1312
github.com/google/go-cmp v0.5.9 h1:O2Tfq5qg4qc4AmwVlvv0oLiVAGB7enBSJ2x2DqQFi38=
14-
github.com/google/sqlcommenter/go/core v0.0.1-beta h1:IVszEHanWVeS7UcmP8C3SHa57CmfeqMBj0QUcJ8VZ9Q=
15-
github.com/google/sqlcommenter/go/core v0.0.1-beta/go.mod h1:CZfcqmbIxngExnZ7Se6AsKNVubZhKyi54aeDJZiqTMQ=
16-
github.com/google/sqlcommenter/go/database/sql v0.0.1-beta h1:N680pEYaRwmOSrQWUd4A4aD4kj4WYxcJTQB9WLe69vY=
17-
github.com/google/sqlcommenter/go/database/sql v0.0.1-beta/go.mod h1:VdswmF4SM0cbjJdD+3GyM5QuXpHhH6F5nSzcbikzCGY=
18-
github.com/google/sqlcommenter/go/net/http v0.0.1-beta h1:7XQ6poZv+ZJwwHWQHlesq9IMsRus3G6Z9n10qAkrGqE=
19-
github.com/google/sqlcommenter/go/net/http v0.0.1-beta/go.mod h1:tVUqM1YZ/K3eRTdGzeav1GSbw+BXNdTGzSAbLW9CxAc=
13+
github.com/google/sqlcommenter/go/core v0.0.2-beta h1:VnX58Jvf1mkI5KveBddZhCm4YtzG9IQErCNdmfXBU1I=
14+
github.com/google/sqlcommenter/go/core v0.0.2-beta/go.mod h1:CZfcqmbIxngExnZ7Se6AsKNVubZhKyi54aeDJZiqTMQ=
15+
github.com/google/sqlcommenter/go/core v0.0.3-beta h1:gWUfq/UyMPEmHpAyhjcsGGAXRCV2fjB6e6F8CPedlnU=
16+
github.com/google/sqlcommenter/go/core v0.0.3-beta/go.mod h1:GORu2htXRC4xtejBzOa4ct1L20pohP81DFNYKdCJI70=
17+
github.com/google/sqlcommenter/go/core v0.0.5-beta h1:axqYR1zQCCdRBLnwr/j+ckllBSBJ7uaVdsnANuGzCUI=
18+
github.com/google/sqlcommenter/go/core v0.0.5-beta/go.mod h1:GORu2htXRC4xtejBzOa4ct1L20pohP81DFNYKdCJI70=
19+
github.com/google/sqlcommenter/go/database/sql v0.0.2-beta h1:0Caf+turrQA18W35lP3BwYpaV15vty+7eHAWtE73mQs=
20+
github.com/google/sqlcommenter/go/database/sql v0.0.2-beta/go.mod h1:d4SXOYrVnfW0X38FR+MUa1pbYNgqHlPv2rgYK0xr+rg=
21+
github.com/google/sqlcommenter/go/database/sql v0.0.3-beta h1:1f989k6obpu99gl/wX7cS6zHQwa77p5NrQABCg0X80Y=
22+
github.com/google/sqlcommenter/go/database/sql v0.0.3-beta/go.mod h1:Bmr95q93SPegEZ04UpJTVSr+okVqZTR3tM4Tom4f0b4=
23+
github.com/google/sqlcommenter/go/gorrila/mux v0.0.1-beta h1:kCtKVtbDtv42Vh7jvwaHC7MCuVOFjKFUMcdjN2gvXjo=
24+
github.com/google/sqlcommenter/go/gorrila/mux v0.0.1-beta/go.mod h1:xhQX/UtJVH6+dzvU+ULSVyepXvnqMqBPZay4l8m1WfM=
25+
github.com/google/sqlcommenter/go/net/http v0.0.3-beta h1:IE/vO3xKddn/2Bq3k+hSy4CxcEuvE1lUiIDYTXjApzA=
26+
github.com/google/sqlcommenter/go/net/http v0.0.3-beta/go.mod h1:duXQQvXZYCX8eQ+XOrlojWF512ltEp1eSKXc/KiS9lg=
2027
github.com/gorilla/mux v1.8.0 h1:i40aqfkR1h2SlN9hojwV5ZA91wcXFOvkdNIeFDP5koI=
2128
github.com/gorilla/mux v1.8.0/go.mod h1:DVbg23sWSpFRCP0SfiEN6jmj59UnW/n46BH5rLB71So=
22-
github.com/julienschmidt/httprouter v1.3.0 h1:U0609e9tgbseu3rBINet9P48AI/D3oJs4dN7jwJOQ1U=
23-
github.com/julienschmidt/httprouter v1.3.0/go.mod h1:JR6WtHb+2LUe8TCKY3cZOxFyyO8IZAc4RVcycCCAKdM=
2429
github.com/lib/pq v1.10.7 h1:p7ZhMD+KsSRozJr34udlUrhboJwWAgCg34+/ZZNvZZw=
2530
github.com/lib/pq v1.10.7/go.mod h1:AlVN5x4E4T544tWzH6hKfbfQvm3HdbOxrmggDNAPY9o=
2631
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
27-
github.com/stretchr/testify v1.7.1 h1:5TQK59W5E3v0r2duFAb7P95B6hEeOyEnHRa8MjYSMTY=
32+
github.com/stretchr/testify v1.8.0 h1:pSgiaMZlXftHpm5L7V1+rVB+AZJydKsMxsQBIJw4PKk=
2833
go.opentelemetry.io/contrib/instrumentation/github.com/gorilla/mux/otelmux v0.36.4 h1:gn5Cf5XpnENThRBjAHq6vuENFo+l9qwnEMqwmanIYuY=
2934
go.opentelemetry.io/contrib/instrumentation/github.com/gorilla/mux/otelmux v0.36.4/go.mod h1:f26RulijcxdgrGSYep0AykXM9ZkWoKVtInstDYUR8EU=
30-
go.opentelemetry.io/otel v1.10.0 h1:Y7DTJMR6zs1xkS/upamJYk0SxxN4C9AqRd77jmZnyY4=
31-
go.opentelemetry.io/otel v1.10.0/go.mod h1:NbvWjCthWHKBEUMpf0/v8ZRZlni86PpGFEMA9pnQSnQ=
3235
go.opentelemetry.io/otel v1.11.1 h1:4WLLAmcfkmDk2ukNXJyq3/kiz/3UzCaYq6PskJsaou4=
3336
go.opentelemetry.io/otel v1.11.1/go.mod h1:1nNhXBbWSD0nsL38H6btgnFN2k4i0sNLHNNMZMSbUGE=
34-
go.opentelemetry.io/otel/exporters/stdout/stdouttrace v1.10.0 h1:c9UtMu/qnbLlVwTwt+ABrURrioEruapIslTDYZHJe2w=
35-
go.opentelemetry.io/otel/exporters/stdout/stdouttrace v1.10.0/go.mod h1:h3Lrh9t3Dnqp3NPwAZx7i37UFX7xrfnO1D+fuClREOA=
3637
go.opentelemetry.io/otel/exporters/stdout/stdouttrace v1.11.1 h1:3Yvzs7lgOw8MmbxmLRsQGwYdCubFmUHSooKaEhQunFQ=
3738
go.opentelemetry.io/otel/exporters/stdout/stdouttrace v1.11.1/go.mod h1:pyHDt0YlyuENkD2VwHsiRDf+5DfI3EH7pfhUYW6sQUE=
38-
go.opentelemetry.io/otel/sdk v1.10.0 h1:jZ6K7sVn04kk/3DNUdJ4mqRlGDiXAVuIG+MMENpTNdY=
39-
go.opentelemetry.io/otel/sdk v1.10.0/go.mod h1:vO06iKzD5baltJz1zarxMCNHFpUlUiOy4s65ECtn6kE=
4039
go.opentelemetry.io/otel/sdk v1.11.1 h1:F7KmQgoHljhUuJyA+9BiU+EkJfyX5nVVF4wyzWZpKxs=
4140
go.opentelemetry.io/otel/sdk v1.11.1/go.mod h1:/l3FE4SupHJ12TduVjUkZtlfFqDCQJlOlithYrdktys=
42-
go.opentelemetry.io/otel/trace v1.10.0 h1:npQMbR8o7mum8uF95yFbOEJffhs1sbCOfDh8zAJiH5E=
43-
go.opentelemetry.io/otel/trace v1.10.0/go.mod h1:Sij3YYczqAdz+EhmGhE6TpTxUO5/F/AzrK+kxfGqySM=
4441
go.opentelemetry.io/otel/trace v1.11.1 h1:ofxdnzsNrGBYXbP7t7zpUK281+go5rF7dvdIZXF8gdQ=
4542
go.opentelemetry.io/otel/trace v1.11.1/go.mod h1:f/Q9G7vzk5u91PhbmKbg1Qn0rzH1LJ4vbPHFGkTPtOk=
4643
golang.org/x/sys v0.0.0-20220927170352-d9d178bc13c6 h1:cy1ko5847T/lJ45eyg/7uLprIE/amW5IXxGtEnQdYMI=
4744
golang.org/x/sys v0.0.0-20220927170352-d9d178bc13c6/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
48-
gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c h1:dUUwHk2QECo/6vqA44rthZ8ie2QXMNeKRTHCNY2nXvo=
45+
gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=

go/samples/http/main.go

Lines changed: 8 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,12 @@ package main
22

33
import (
44
"context"
5+
"database/sql"
56
"flag"
67
"log"
78
"net/http"
89

9-
"github.com/google/sqlcommenter/go/core"
10-
gosql "github.com/google/sqlcommenter/go/database/sql"
11-
httpnet "github.com/google/sqlcommenter/go/net/http"
10+
gosqlmux "github.com/google/sqlcommenter/go/gorrila/mux"
1211
"github.com/gorilla/mux"
1312
"go.opentelemetry.io/contrib/instrumentation/github.com/gorilla/mux/otelmux"
1413
"go.opentelemetry.io/otel"
@@ -21,15 +20,6 @@ import (
2120
"sqlcommenter-http/todos"
2221
)
2322

24-
// middleware is used to intercept incoming HTTP calls and apply general functions upon them.
25-
func middleware(h http.Handler) http.Handler {
26-
return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
27-
ctx := core.ContextInject(r.Context(), httpnet.NewHTTPRequestExtractor(r, h))
28-
log.Printf("HTTP request sent to %s", r.URL.Path)
29-
h.ServeHTTP(w, r.WithContext(ctx))
30-
})
31-
}
32-
3323
func runApp(todosController *todos.TodosController) {
3424
err := todosController.CreateTodosTableIfNotExists()
3525
if err != nil {
@@ -47,27 +37,25 @@ func runApp(todosController *todos.TodosController) {
4737
}()
4838

4939
r := mux.NewRouter()
50-
r.Use(otelmux.Middleware("sqlcommenter sample-server"))
40+
r.Use(otelmux.Middleware("sqlcommenter sample-server"), gosqlmux.SQLCommenterMiddleware)
5141

5242
r.HandleFunc("/todos", todosController.ActionList).Methods("GET")
5343
r.HandleFunc("/todos", todosController.ActionInsert).Methods("POST")
5444
r.HandleFunc("/todos/{id}", todosController.ActionUpdate).Methods("PUT")
5545
r.HandleFunc("/todos/{id}", todosController.ActionDelete).Methods("DELETE")
5646

57-
http.ListenAndServe(":8081", middleware(r))
47+
http.ListenAndServe(":8081", r)
5848
}
5949

60-
// host = “host.docker.internal”
61-
62-
func runForMysql() *gosql.DB {
50+
func runForMysql() *sql.DB {
6351
connection := "root:password@tcp(mysql:3306)/sqlcommenter_db"
6452
db := mysqldb.ConnectMySQL(connection)
6553
todosController := &todos.TodosController{Engine: "mysql", DB: db, SQL: todos.MySQLQueries{}}
6654
runApp(todosController)
6755
return db
6856
}
6957

70-
func runForPg() *gosql.DB {
58+
func runForPg() *sql.DB {
7159
connection := "host=postgres user=postgres password=postgres dbname=postgres port=5432 sslmode=disable"
7260
db := pgdb.ConnectPG(connection)
7361
todosController := &todos.TodosController{Engine: "pg", DB: db, SQL: todos.PGQueries{}}
@@ -92,14 +80,14 @@ func initTracer() (*sdktrace.TracerProvider, error) {
9280
func main() {
9381
var engine string
9482

95-
flag.StringVar(&engine, "db_engine", "mysql", "db-engine to run the sample application on")
83+
flag.StringVar(&engine, "db_engine", "pg", "db-engine to run the sample application on")
9684
flag.Parse()
9785

9886
if engine != "mysql" && engine != "pg" {
9987
log.Fatalf("invalid engine: %s", engine)
10088
}
10189

102-
var db *gosql.DB
90+
var db *sql.DB
10391

10492
switch engine {
10593
case "mysql":

go/samples/http/mysqldb/mysql_driver.go

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,19 @@
11
package mysqldb
22

33
import (
4+
"database/sql"
45
"log"
56

67
_ "github.com/go-sql-driver/mysql"
78
"github.com/google/sqlcommenter/go/core"
89
gosql "github.com/google/sqlcommenter/go/database/sql"
910
)
1011

11-
func ConnectMySQL(connection string) *gosql.DB {
12-
db, err := gosql.Open("mysql", connection, core.CommenterOptions{EnableDBDriver: true, EnableRoute: true, EnableAction: true, EnableFramework: true, EnableTraceparent: true})
12+
func ConnectMySQL(connection string) *sql.DB {
13+
db, err := gosql.Open("mysql", connection, core.CommenterOptions{
14+
Config: core.CommenterConfig{EnableDBDriver: true, EnableRoute: true, EnableAction: true, EnableFramework: true, EnableTraceparent: true, EnableApplication: true},
15+
Tags: core.StaticTags{},
16+
})
1317
if err != nil {
1418
log.Fatalf("Failed to connect to MySQL(%q), error: %v", connection, err)
1519
}

go/samples/http/pgdb/pg_driver.go

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,19 @@
11
package pgdb
22

33
import (
4+
"database/sql"
45
"log"
56

67
"github.com/google/sqlcommenter/go/core"
78
gosql "github.com/google/sqlcommenter/go/database/sql"
89
_ "github.com/lib/pq"
910
)
1011

11-
func ConnectPG(connection string) *gosql.DB {
12-
db, err := gosql.Open("postgres", connection, core.CommenterOptions{EnableDBDriver: true, EnableRoute: true, EnableAction: true, EnableFramework: true, EnableTraceparent: true})
12+
func ConnectPG(connection string) *sql.DB {
13+
db, err := gosql.Open("postgres", connection, core.CommenterOptions{
14+
Config: core.CommenterConfig{EnableDBDriver: true, EnableRoute: true, EnableAction: true, EnableFramework: true, EnableTraceparent: true, EnableApplication: true},
15+
Tags: core.StaticTags{},
16+
})
1317
if err != nil {
1418
log.Fatalf("Failed to connect to PG(%q), error: %v", connection, err)
1519
}

go/samples/http/todos/controller.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,12 @@ package todos
22

33
import (
44
"context"
5+
"database/sql"
56
"encoding/json"
67
"fmt"
78
"log"
89
"net/http"
910

10-
gosql "github.com/google/sqlcommenter/go/database/sql"
1111
"github.com/gorilla/mux"
1212
)
1313

@@ -22,7 +22,7 @@ type TodoDTO struct {
2222

2323
type TodosController struct {
2424
Engine string
25-
DB *gosql.DB
25+
DB *sql.DB
2626
SQL TodosQueries
2727
}
2828

0 commit comments

Comments
 (0)