{"id":23624807,"url":"https://github.com/hcl-tech-software/domino-rest-sdk-go","last_synced_at":"2025-11-07T09:30:37.510Z","repository":{"id":247800283,"uuid":"725166947","full_name":"HCL-TECH-SOFTWARE/domino-rest-sdk-go","owner":"HCL-TECH-SOFTWARE","description":"GO SDK to access the HCL Domino REST API","archived":false,"fork":false,"pushed_at":"2025-02-13T21:23:37.000Z","size":1066,"stargazers_count":0,"open_issues_count":1,"forks_count":0,"subscribers_count":8,"default_branch":"main","last_synced_at":"2025-02-16T23:30:04.737Z","etag":null,"topics":["domino","go","golang","rest","rest-api"],"latest_commit_sha":null,"homepage":"https://opensource.hcltechsw.com/Domino-rest-api/index.html","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/HCL-TECH-SOFTWARE.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":null,"code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-11-29T15:19:04.000Z","updated_at":"2024-07-16T13:59:15.000Z","dependencies_parsed_at":"2024-07-10T18:42:44.028Z","dependency_job_id":null,"html_url":"https://github.com/HCL-TECH-SOFTWARE/domino-rest-sdk-go","commit_stats":null,"previous_names":["hcl-tech-software/domino-rest-sdk-go"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/HCL-TECH-SOFTWARE%2Fdomino-rest-sdk-go","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/HCL-TECH-SOFTWARE%2Fdomino-rest-sdk-go/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/HCL-TECH-SOFTWARE%2Fdomino-rest-sdk-go/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/HCL-TECH-SOFTWARE%2Fdomino-rest-sdk-go/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/HCL-TECH-SOFTWARE","download_url":"https://codeload.github.com/HCL-TECH-SOFTWARE/domino-rest-sdk-go/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":239525583,"owners_count":19653362,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["domino","go","golang","rest","rest-api"],"created_at":"2024-12-27T21:16:32.117Z","updated_at":"2025-02-18T18:26:32.386Z","avatar_url":"https://github.com/HCL-TECH-SOFTWARE.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Domino REST API Golang SDK\n\nDomino REST Go SDK is a package build designed to assist developers in integrating Domino with their applications.\n\n\u0026copy; 2023 HCL America Inc. Apache-2.0 license [https://www.apache.org/licenses/LICENSE-2.0](https://www.apache.org/licenses/LICENSE-2.0)\n\n## 📔 Documentation\n\n- [Domino REST API documentation](https://opensource.hcltechsw.com/Domino-rest-api/index.html)\n- [Using Domino REST API Go SDK examples](/examples/)\n\n## ⬇️ Installation\n\nFirst step is to install and configure Golang. Below is the link to follow the installation and configuration process.\n```\nhttps://go.dev/doc/install\n```\n\n## ⭐ Highlights\n\n- Supports both JavaScript and TypeScript.\n- Has built-in methods for the following Domino REST API calls:\n  - **Basis**:\n    - `/document`\n    - `/document/{unid}`\n    - `/bulk/create`\n    - `/bulk/{unid}`\n    - `/bulk/update`\n    - `/bulk/delete`\n    - `/query`\n    - `/lists`\n    - `/lists/{name}`\n    - `/listspivot/{name}`\n  - **Setup**:\n    - `/design/{designType}/{designName}`\n    - `/admin/scope`\n    - `/admin/scopes`\n\n## 📦 Importing\n\nYou can import the whole SDK by:\n```\n// Using golang get command\ngo get github.com/HCL-TECH-SOFTWARE/domino-rest-sdk-go\n```\n\nYou can also import within your Golang file:\n```\nimport \"github.com/HCL-TECH-SOFTWARE/domino-rest-sdk-go\"\n```\n\n## 🔬 Overview\n\n![Domino REST API Go SDK Model](/docs/sdk-model.png)\n\nDomino REST API Go SDK has four moving parts:\n\n- `DominoAccess`\n- `DominoServer`\n- `DominoConnector`\n- `DominoSession`\n\n### ℹ️ DominoAccess\n\n`DominoAccess` is a function that facilitates your access to the Domino REST API server. It takes in a `baseUrl`, which is your Idp provider, as well as your credentials, such as your `username`, `password`, `scope` and `type` (the authentication type: `basic` or `oauth`).\n\n### ℹ️ DominoServer\n\n`DominoServer` is a function that gets information on what APIs are available on your current server. It takes in a url to your Domino REST API server as a parameter. This class produces a `ConnectorMethods` interface base on your chosen API.\n\n### ℹ️ DominoConnector\n\n`DominoConnector` is the function that does the actual communication between the Domino REST API Go SDK and your Domino REST API server.\n\n### ℹ️ Session\n\n`DominoUserSession` is a class that contains all the operation you can perform on your Domino REST API server. It includes built-in methods, and a generic request method if you want to execute an operation on your own.\n\n### 🎮 Running a Domino REST API operation using the SDK\n\nHere is an example of how to use the four moving parts mentioned above in order to execute one Domino REST API Go SDK.\n\n```Go\nimport (\n\t\"fmt\"\n\tgosdk \"https://github.com/HCL-TECH-SOFTWARE/domino-rest-sdk-go\"\n)\n\nconfig := new(gosdk.Config)\nconfig.BaseUrl = \"http://localhost:8880\"\nconfig.Credentials.Scope = \"$DATA\"\nconfig.Credentials.Type = \"BASIC\"\nconfig.Credentials.UserName = \"username\"\nconfig.Credentials.Password = \"password\"\n\naccess, err := config.DominoAccess()\nif err != nil {\n    fmt.Println(err.Error())\n}\n\nserver, err := gosdk.DominoServer(access.GetBaseUrl())\nif err != nil {\n    fmt.Println(err.Error())\n}\n\nconnector, err := server.GetConnector(\"basis\")\nif err != nil {\n    fmt.Println(err.Error())\n}\n\nsession := new(gosdk.SessionConfig)\nsession.AccessMethods = access\nsession.ConnectorMethods = connector\n\nsession := session.UserSession()\n\n// Get a domino document example\nresult, err := session.GetDocument(\"parameter1\", \"parameter2\", ...)\nif err != nil {\n    fmt.Println(err)\n}\nfmt.Println(result)\n```\n\nFor other examples, please go to our [examples](/examples/operations/).","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhcl-tech-software%2Fdomino-rest-sdk-go","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhcl-tech-software%2Fdomino-rest-sdk-go","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhcl-tech-software%2Fdomino-rest-sdk-go/lists"}