通过 REST 创建 Nexus 用户 API
Create Nexus User Through REST API
我正在使用 Nexus OSS 2。11.x 并且想通过 REST 创建新用户 API。以下命令正确检索所有用户的列表,从而确认我能够调用 API:
curl -u $NEXUS_USER:$NEXUS_PASS $NEXUS_LOCAL/service/local/users
根据 API 文档,我构建了一个 JSON 用户对象:
export USER='{"data":{"email":"testing@example.com","firstName":"Test","lastName":"Ing","userId":"testing","status": "active","roles":["repository-any-read"],"password": "test123$"}}'
然后我提交 POST 请求:
curl -i -H "Accept: application/json" -H "ContentType: application/json; charset=UTF-8" -v -d "$USER" -u $NEXUS_USER:$NEXUS_PASS $NEXUS_LOCAL/service/local/users
响应返回 HTTP 201(已创建)- 但 GET /service/local/users
只返回原始用户列表。用户不在 UI 提供的列表中,并且日志(在 UI 中可用)甚至没有表明发生了任何 activity。 $NEXUS_USER 帐户处于 "Nexus Administrator" 角色。
有人对我在这里忽略的内容有什么建议吗?
上面的代码是正确的,今天执行得很好。服务器在一夜之间重新启动,并以某种方式修复了问题。
进一步明确环境变量
- NEXUS_LOCAL 是您的 Nexus 服务器。如果您使用默认设置在本地主机上安装,则
export NEXUS_LOCAL=http://localhost:8081/nexus
(Bash) 或 SET NEXUS_LOCAL=http://localhost:8081/nexus
(Windows).
- NEXUS_USER 和 NEXUS_PASS 是具有管理员角色的帐户的明文,或者大概是 UI 管理员(没有测试后者)。
我用了上面的代码,遇到了同样的问题:
HTTP/1.1 201 Created
什么也没发生。
经过一些调试后,我注意到上面有一个简单的错字,这是一个问题。
相反:
-H "ContentType: application/json; charset=UTF-8"
应该是:
-H "Content-Type: application/json; charset=UTF-8"
(注意 Content-Type
中的破折号)它开始工作了。
我正在使用 Nexus OSS 2。11.x 并且想通过 REST 创建新用户 API。以下命令正确检索所有用户的列表,从而确认我能够调用 API:
curl -u $NEXUS_USER:$NEXUS_PASS $NEXUS_LOCAL/service/local/users
根据 API 文档,我构建了一个 JSON 用户对象:
export USER='{"data":{"email":"testing@example.com","firstName":"Test","lastName":"Ing","userId":"testing","status": "active","roles":["repository-any-read"],"password": "test123$"}}'
然后我提交 POST 请求:
curl -i -H "Accept: application/json" -H "ContentType: application/json; charset=UTF-8" -v -d "$USER" -u $NEXUS_USER:$NEXUS_PASS $NEXUS_LOCAL/service/local/users
响应返回 HTTP 201(已创建)- 但 GET /service/local/users
只返回原始用户列表。用户不在 UI 提供的列表中,并且日志(在 UI 中可用)甚至没有表明发生了任何 activity。 $NEXUS_USER 帐户处于 "Nexus Administrator" 角色。
有人对我在这里忽略的内容有什么建议吗?
上面的代码是正确的,今天执行得很好。服务器在一夜之间重新启动,并以某种方式修复了问题。
进一步明确环境变量
- NEXUS_LOCAL 是您的 Nexus 服务器。如果您使用默认设置在本地主机上安装,则
export NEXUS_LOCAL=http://localhost:8081/nexus
(Bash) 或SET NEXUS_LOCAL=http://localhost:8081/nexus
(Windows). - NEXUS_USER 和 NEXUS_PASS 是具有管理员角色的帐户的明文,或者大概是 UI 管理员(没有测试后者)。
我用了上面的代码,遇到了同样的问题:
HTTP/1.1 201 Created
什么也没发生。 经过一些调试后,我注意到上面有一个简单的错字,这是一个问题。 相反:
-H "ContentType: application/json; charset=UTF-8"
应该是:
-H "Content-Type: application/json; charset=UTF-8"
(注意 Content-Type
中的破折号)它开始工作了。