Product Promotion
0x5a.live
for different kinds of informations and explorations.
GitHub - hishamkaram/geoserver: geoserver is a Go library for manipulating a GeoServer instance via the GeoServer REST API.
geoserver is a Go library for manipulating a GeoServer instance via the GeoServer REST API. - hishamkaram/geoserver
Visit SiteGitHub - hishamkaram/geoserver: geoserver is a Go library for manipulating a GeoServer instance via the GeoServer REST API.
geoserver is a Go library for manipulating a GeoServer instance via the GeoServer REST API. - hishamkaram/geoserver
Powered by 0x5a.live 💗
Geoserver
geoserver Is a Go Package For Manipulating a GeoServer Instance via the GeoServer REST API.
How to install:
go get -v gopkg.in/hishamkaram/geoserver.v1
- now you can import the package from
gopkg.in/hishamkaram/geoserver.v1
, example:import ( ... "gopkg.in/hishamkaram/geoserver.v1" ... )
- now you can import the package from
usage:
- Create new Catalog (which contains all available operations):
gsCatalog := geoserver.GetCatalog("http://localhost:8080/geoserver13/", "admin", "geoserver")
- Use catalog Methods to Perform a Geoserver REST Operation:
- Create New workspace:
output if created:created, err := gsCatalog.CreateWorkspace("golang") if err != nil { fmt.Printf("\nError:%s\n", err) } fmt.Println(strconv.FormatBool(created))
output if error:INFO[31-03-2018 16:26:35] url:http://localhost:8080/geoserver13/rest/workspaces response Status=201 true
INFO[31-03-2018 16:26:37] url:http://localhost:8080/geoserver13/rest/workspaces response Status=401 WARN[31-03-2018 16:26:37] <!doctype html><html lang="en"><head><title>HTTP Status 401 – Unauthorized</title><style type="text/css">h1 {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;font-size:22px;} h2 {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;font-size:16px;} h3 {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;font-size:14px;} body {font-family:Tahoma,Arial,sans-serif;color:black;background-color:white;} b {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;} p {font-family:Tahoma,Arial,sans-serif;background:white;color:black;font-size:12px;} a {color:black;} a.name {color:black;} .line {height:1px;background-color:#525D76;border:none;}</style></head><body><h1>HTTP Status 401 – Unauthorized</h1><hr class="line" /><p><b>Type</b> Status Report</p><p><b>Message</b> Workspace 'golang' already exists</p><p><b>Description</b> The request has not been applied because it lacks valid authentication credentials for the target resource.</p><hr class="line" /><h3>Apache Tomcat/9.0.6</h3></body></html> Error:Unauthorized false
- Create New workspace:
- Get Layers through GetLayers take workspace as paramter if empty workspace will be ignored and geoserver will return all public layers
output:layers, err := gsCatalog.GetLayers("") if err != nil { fmt.Printf("\nError:%s\n", err) } for _, lyr := range layers { fmt.Printf("\nName:%s href:%s\n", lyr.Name, lyr.Href) }
INFO[31-03-2018 19:04:44] url:http://localhost:8080/geoserver13/rest/layers response Status=200 Name:tiger:giant_polygon href:http://localhost:8080/geoserver13/rest/layers/tiger%3Agiant_polygon.json Name:tiger:poi href:http://localhost:8080/geoserver13/rest/layers/tiger%3Apoi.json Name:tiger:poly_landmarks href:http://localhost:8080/geoserver13/rest/layers/tiger%3Apoly_landmarks.json Name:tiger:tiger_roads href:http://localhost:8080/geoserver13/rest/layers/tiger%3Atiger_roads.json Name:nurc:Arc_Sample href:http://localhost:8080/geoserver13/rest/layers/nurc%3AArc_Sample.json Name:nurc:Img_Sample href:http://localhost:8080/geoserver13/rest/layers/nurc%3AImg_Sample.json Name:nurc:Pk50095 href:http://localhost:8080/geoserver13/rest/layers/nurc%3APk50095.json Name:nurc:mosaic href:http://localhost:8080/geoserver13/rest/layers/nurc%3Amosaic.json ......
- Get Specific Layer from Geoserver:
output:layer, err := gsCatalog.GetLayer("nurc", "Arc_Sample") if err != nil { fmt.Printf("\nError:%s\n", err) } else { fmt.Printf("%+v\n", layer) }
INFO[31-03-2018 20:12:07] url:http://localhost:8080/geoserver13/rest/workspaces/nurc/layers/Arc_Sample response Status=200 {Name:Arc_Sample Path:/ Type:RASTER DefaultStyle:{Class: Name:rain Href:http://localhost:8080/geoserver13/rest/styles/rain.json} Styles:{Class:linked-hash-set Style:[{Class: Name:raster Href:http://localhost:8080/geoserver13/rest/styles/raster.json}]} Resource:{Class:coverage Name:nurc:Arc_Sample Href:http://localhost:8080/geoserver13/rest/workspaces/nurc/coveragestores/arcGridSample/coverages/Arc_Sample.json} Queryable:false Opaque:false Attribution:{Title: Href: LogoURL: LogoType: LogoWidth:0 LogoHeight:0}}
- You can find more examples by check testing files
- You can find all supported operations on Godocs
TESTING
Go Version | Geoserver Version | Tested | |
---|---|---|---|
1 | 1.13.x | 2.13.x | :heavy_check_mark: |
2 | 1.13.x | 2.14.x | :heavy_check_mark: |
3 | 1.14.x | 2.13.x | :heavy_check_mark: |
4 | 1.14.x | 2.14.x | :heavy_check_mark: |
5 | 1.15.x | 2.13.x | :heavy_check_mark: |
6 | 1.15.x | 2.14.x | :heavy_check_mark: |
Documentation
GoLang Resources
are all listed below.
GitHub - GuilhermeCaruso/anko: :crystal_ball: Simple application watcher
resource
~/github.com
resource
GitHub - jidicula/go-fuzz-action: GitHub Action for Go 1.18 fuzz testing
resource
~/github.com
resource
GitHub - tucnak/climax: Climax is an alternative CLI with the human face
resource
~/github.com
resource
GitHub - lawrencewoodman/roveralls: A Go recursive coverage testing tool
resource
~/github.com
resource
GitHub - nakagami/firebirdsql: Firebird RDBMS sql driver for Go (golang)
resource
~/github.com
resource
GitHub - liweiyi88/onedump: Effortlessly database dump with one command.
resource
~/github.com
resource
GitHub - beefsack/go-astar: Go implementation of the A* search algorithm
resource
~/github.com
resource
GitHub - lxn/walk: A Windows GUI toolkit for the Go Programming Language
resource
~/github.com
resource
GitHub - mongodb/mongo-go-driver: The Official Golang driver for MongoDB
resource
~/github.com
resource
GitHub - mozillazg/go-unidecode: ASCII transliterations of Unicode text.
resource
~/github.com
resource
GitHub - bolknote/go-gd: Go bingings for GD (http://www.boutell.com/gd/)
resource
~/github.com
resource
GitHub - mosajjal/dnsmonster: Passive DNS Capture and Monitoring Toolkit
resource
~/github.com
resource
GitHub - haxpax/gosms: :mailbox_closed: Your own local SMS gateway in Go
resource
~/github.com
resource
GitHub - wajox/gobase: This is a simple skeleton for golang applications
resource
~/github.com
resource
GitHub - VividCortex/gohistogram: Streaming approximate histograms in Go
resource
~/github.com
resource
GitHub - malaschitz/randomForest: Random Forest implementation in golang
resource
~/github.com
resource
GitHub - google/gopacket: Provides packet processing capabilities for Go
resource
~/github.com
resource
GitHub - khezen/evoli: Genetic Algorithm and Particle Swarm Optimization
resource
~/github.com
resource
GitHub - didip/tollbooth: Simple middleware to rate-limit HTTP requests.
resource
~/github.com
resource
GitHub - mustafaakin/gongular: A different approach to Go web frameworks
resource
~/github.com
resource
GitHub - songgao/colorgo: Colorize (highlight) `go build` command output
resource
~/github.com
resource
Made with ❤️
to provide different kinds of informations and resources.