从作业 API 创建作业时出错

Getting error while creating Job from Jobs API

我正在将数据库中的作业配置作为字符串传递并作为字符串存储在 .Net Web 中 API as

var result =  _context.Output.FromSqlRaw(StoredJson).ToList().FirstOrDefault().Details;

现在我使用 RestSharp 库在 .Net 中创建请求

var client = new RestClient(".....");
var request = new RestRequest("/api/2.0/jobs/create", Method.Post);
string Auth = "......";

request.AddParameter("application/json", result, ParameterType.RequestBody);
request.AddParameter("Authorization", "Bearer " + Auth, ParameterType.HttpHeader);
var response = await client.ExecuteAsync(request);
return(response.content)

我的 Json 看起来像这样

{
    "name": "LoadData_test",
    "new_cluster": {
        "spark_version": "7.6.x-scala2.12",
        "init_scripts": [
            {
                "dbfs": {
                    "destination": "....."
                }
            }
        ],
        "instance_pool_id": ".......",
        "azure_attributes": {
            "spot_bid_max_price": -1
        },
        "autoscale": {
            "min_workers": 2,
            "max_workers": 5
        }
    },
    "libraries": [
        {
            "maven": {
                "coordinates": "......"
            }
        }
    ],
    "timeout_seconds": 0,
    "notebook_task": {
        "notebook_path": "......",
        "revision_timestamp": 0
    },
    "max_concurrent_runs": 1
}

而且我想当我将这个 JSON 传递给 request.AddParameters 时,它被当作 text/plain。但我希望它是 JSON.

我想,我已经做对了所有事情,但是在发送请求时仍然出现错误

{"error_code":"INVALID_PARAMETER_VALUE","message":"Job settings must be specified."}

有人可以帮我吗?

我使用“...”是因为内容有效。

我猜你得到了一些代码生成器生成的代码,比如 Postman。它不适用于最新的 RestSharp,因为构建请求的方式已损坏。

documentation 完整概述了 RestSharp API 以构建正确的请求,我强烈建议查看它。

具体来说,您需要替换这一行:

request.AddParameter("application/json", result, ParameterType.RequestBody);

request.AddStringBody(result, DataFormat.Json);