创建新应用程序时出现 DigitalOcean API 错误 - api.digitalocean.com/v2/apps

Posted

技术标签:

【中文标题】创建新应用程序时出现 DigitalOcean API 错误 - api.digitalocean.com/v2/apps【英文标题】:DigitalOcean API Error When Creating New App - api.digitalocean.com/v2/apps 【发布时间】:2022-01-22 04:20:37 【问题描述】:

尝试在 DigitalOcean 上创建新的 PaaS 应用程序时出错。已经看过docs 并且无法弄清楚为什么这不起作用。 spec 对象基本上取自文档。


import requests

headers = 
    'Content-Type': 'application/json',
    'Authorization': 'Bearer MY_TOKEN'


spec = 
    "name": "test-app",
    "region": "nyc1",
    "services": [
            
                "name": "api",
                "github": 
                    "branch": "main",
                    "deploy_on_push": 'true',
                    "repo": "username/my-app"
                ,
                "run_command": "python3 application.py",
                "environment_slug": "python",
                "instance_count": 2,
                "instance_size_slug": "basic-xxs",
                "routes": [
                    
                        "path": "/api"
                    
                ]
            
    ]


payload = 'spec': spec

res = requests.post(
    'https://api.digitalocean.com/v2/apps',
    headers=headers,
    data=payload,
)
print(res)
print(res.json())
print(res.status_code)


我收到以下错误。这是我发送数据的方式有误吗?

<Response [400]>
'id': 'invalid_argument', 'message': "invalid character 's' looking for beginning of value"

【问题讨论】:

【参考方案1】:

试试:

    json=payload(不是data=payloaddeploy_on_push": True, 布尔值(不是字符串)

【讨论】:

收到此错误'id': 'not_found', 'message': 'not found: getting app'【参考方案2】:
import requests

headers = 
    'Content-Type': 'application/json',
    'Authorization': 'Bearer MY_TOKEN'


spec = 
    "name": "test-app",
    "region": "nyc1",
    "services": [
            
                "name": "api",
                "github": 
                    "branch": "main",
                    "deploy_on_push": 'True',
                    "repo": "username/my-app"
                ,
                "run_command": "python3 application.py",
                "environment_slug": "python",
                "instance_count": 2,
                "instance_size_slug": "basic-xxs",
                "routes": [
                    
                        "path": "/api"
                    
                ]
            
    ]


payload = 'spec': spec

res = requests.post(
    'https://api.digitalocean.com/v2/apps',
    headers=headers,
    json=payload,
)
print(res)
print(res.json())
print(res.status_code)

【讨论】:

更改为:"deploy_on_push": True,后有效 @Jin 你用小t(真)写了True,但它总是用大T。然后另一个变化也是json = payload inside res = requests.post。你写了数据=有效载荷。如果我的回答或其他用户的回答对您有用并且您解决了问题,请通过将其标记为绿色勾号来接受它作为问题的解决方案,作为帮助中心的 *** 规定:***.com/help/accepted-answer

以上是关于创建新应用程序时出现 DigitalOcean API 错误 - api.digitalocean.com/v2/apps的主要内容,如果未能解决你的问题,请参考以下文章

创建新的 React 应用程序时出现错误

创建新应用程序和库时出现@nrwl/nx 错误

创建新应用时出现 Instagram 验证码错误

创建新的基于文档的核心数据项目时出现问题

创建新的 React 应用程序时出现此错误。也尝试了卸载命令,但它不起作用

在 Tomcat7 服务器上用 Java 创建新实例时出现 XmlPullParser 异常