GitHunt
AR

Arsentau/poc-golang-ns1

PoC to interact with the NS1 API to retrieve and process Networks and Zones information.

NS1 Golang Poc

Overview

A Poc to interact with the NS1 API to retrieve and process Networks and Zones information.
Two approaches were taken:

  • Consume the API with a custom service
  • Consume the API using the official SDK

How to run

Install dependencies

go mod tidy

Create .env file

Create a .env file in the root folder of the project using .env.example as reference.

Run Executables

With the .env with all variables set, run positioned in the root folder one of the following commands:

  • Custom Client run positioned in the root folder go run cmd/custom_ns1_client_api/custom_ns1_client_api.go
  • Official Client (SDK) go run cmd/official_ns1_client_api/official_ns1_client_api.go

Endpoints

Custom Client

  • /zones
  • /networks

Official Client (SDK)

  • /zones

Project Structure

├── cmd
│   ├── custom_ns1_client_api
│   │   └── custom_ns1_client_api.go
│   └── official_ns1_client_api
│       └── official_ns1_client_api.go
├── go.mod
├── go.sum
├── internal
│   └── pkg
│       ├── config
│       │   └── config.go
│       ├── custom_api
│       │   ├── controllers
│       │   │   ├── networks.go
│       │   │   └── zones.go
│       │   └── router
│       │       └── routes.go
│       ├── ns1_custom_client
│       │   ├── models
│       │   │   ├── networks.go
│       │   │   └── zones.go
│       │   ├── services
│       │   │   ├── client.go
│       │   │   ├── dns_networks.go
│       │   │   └── dns_zones.go
│       │   └── utils
│       │       └── requests.go
│       ├── ns1-sdk
│       │   ├── models
│       │   └── sdk.go
│       └── official_api
│           ├── controllers
│           │   └── zones.go
│           └── router
│               └── routes.go
├── pkg
│   ├── api
│   │   ├── models
│   │   │   └── route.go
│   │   └── router.go
│   └── errors
│       └── errorHTTPResponse.go
|── README.md
└── LICENSE

The top level directories cmd, internal, pkg are commonly found in other popular Go projects, as explained in Standard Go Project Layout.

Languages

Go99.4%Shell0.6%

Contributors

MIT License
Created January 6, 2023
Updated January 31, 2023