我正在尝试使用REST在Azure Cosmos DB上执行CRUD操作。根据链接-https://docs.microsoft.com/en-us/rest/api/documentdb/create-a-document,我已经创建了我的有效负载,并试图在Opera浏览器中使用Restman测试它。以下是我的有效载荷详细信息-
报头
Authorization ***************************
Content-Type application/query+json
x-ms-date Tue, 05 Dec 2017 16:49:31 GMT
x-ms-session-token Session
x-ms-version 2017-02-22
身体
id sg4c828f-31f8-4db4-8e7c-e8bdff222dsg
value { "id": "AndersenFamily", "LastName": "Andersen", "Parents": [ { "FamilyName": null, "FirstName": "Thomas" }, { "FamilyName": null, "FirstName": "Mary Kay" } ], "Children": [ { "FamilyName": null, "FirstName": "Henriette Thaulow", "Gender": "female", "Grade": 5, "Pets": [ { "GivenName": "Fluffy" } ] } ], "Address": { "State": "WA", "County": "King", "City": "Seattle" }, "IsRegistered": true }
string GenerateAuthToken(string verb, string resourceType, string resourceId, string date, string key, string keyType, string tokenVersion)
{
var hmacSha256 = new System.Security.Cryptography.HMACSHA256 { Key = Convert.FromBase64String(key) };
verb = verb ?? "";
resourceType = resourceType ?? "";
resourceId = resourceId ?? "";
string payLoad = string.Format(System.Globalization.CultureInfo.InvariantCulture, "{0}\n{1}\n{2}\n{3}\n{4}\n",
verb.ToLowerInvariant(),
resourceType.ToLowerInvariant(),
resourceId,
date.ToLowerInvariant(),
""
);
byte[] hashPayLoad = hmacSha256.ComputeHash(System.Text.Encoding.UTF8.GetBytes(payLoad));
string signature = Convert.ToBase64String(hashPayLoad);
return System.Web.HttpUtility.UrlEncode(String.Format(System.Globalization.CultureInfo.InvariantCulture, "type={0}&ver={1}&sig={2}",
keyType,
tokenVersion,
signature));
}
GenerateAuthToken("GET", "dbs", "dbs/ToDoList", "Tue, 05 Dec 2017 16:49:31 GMT", PARENT_KEY, "master", "1.0");
https://<account_name>.documents.azure.com:<port>/dbs/DCEAAA==/colls/DCEAAIcEVAA=/docs
我跟进您提到的Document创建Document API,并做了一个用rest API创建documentdb文档的演示。你可以参考一下。对于其他操作,您可以遵循以下代码并构造散列标记。
根据常见的Azure Cosmos DB REST请求头,如果我们想要创建一个文档,我们需要准备如下的头
Authorization,x-ms-date,Content-Type,x-ms-version
我们可以从这份文件中得到X-M版本。最新版本是2017-02-22。
var databaseId = "databaseName";
var collectionId = "collectionName";
var datetime = DateTime.UtcNow.ToString("R");
var verb = "post";
var resourceType = "docs"; //
var resourceId = $"dbs/{databaseId}/colls/{collectionId}";
var mastKey = "mastkey value";
var keyType = "master";
var tokenVersion = "1.0";
var authToken = GenerateAuthToken(verb, resourceType, resourceId, datetime, mastKey, keyType, tokenVersion);
Post https://{documentDBAccount}.documents.azure.com:443/dbs/{databaseName}/colls/{collectionId}/docs
请使用以下数据作为json主体
{
"id": "sg4c828f-31f8-4db4-8e7c-e8bdff222dsg",
"value": {
"id": "AndersenFamily",
"LastName": "Andersen",
"Parents": [
{
"FamilyName": null,
"FirstName": "Thomas"
},
{
"FamilyName": null,
"FirstName": "Mary Kay"
}
],
"Children": [
{
"FamilyName": null,
"FirstName": "Henriette Thaulow",
"Gender": "female",
"Grade": 5,
"Pets": [
{
"GivenName": "Fluffy"
}
]
}
],
"Address": {
"State": "WA",
"County": "King",
"City": "Seattle"
},
"IsRegistered": true
}
}
响应代码应该是什么,它同时具有创建和更新操作:
我们将在本章中讨论的基本CRUD操作是使用Angular 2从Web服务读取数据。 例子 (Example) 在这个例子中,我们将定义一个数据源,它是一个简单的产品json文件。 接下来,我们将定义一个服务,用于从json文件中读取数据。 然后,我们将在我们的主app.component.ts文件中使用此服务。 Step 1 - 首先让我们在Visual Studio代码中定义我们的product
componentWillMount() 在组件将要挂载时被立即调用. 这个调用发生在render()函数执行之前, 所以如果在componentWillMount里面设置了state, 这个设置的state是不会触发重新渲染的. 同样我们也需要注意不要在componentWillMount()中引入其他可能会导致问题的代码. 如果你有类似的需求, 请在componentDidMount里面完成.
问题内容: 我正在尝试使用Swift来对REST API进行GET调用,并且试图遵循众多教程,但无法弄清楚。要么是因为我无法弄清楚如何将所有Obj- C转换为Swift,要么是因为不赞成使用n’这样的方法的一半。有谁知道如何进行调用以及解析返回的JSON数据? 问题答案: 您可以这样做: 编辑:对于对此有疑问的人,也许您的JSON流是数组[]而不是对象{},因此您必须将jsonResult更改为
本文向大家介绍在Java的MyBatis框架中建立接口进行CRUD操作的方法,包括了在Java的MyBatis框架中建立接口进行CRUD操作的方法的使用技巧和注意事项,需要的朋友参考一下 以接口操作的方式编程 一般来讲,我们建立映射SQL接口的类时通常会这样: 这样其实在真正的开发过程中如果两边的名字一不小心没有对应上,就会出现异常。为了避免这样的情况我们可以采取接口的方式来进行相应的操作,下面我
我正在构建一个Spring Boot应用程序,它有几个不同的RESTendpoint。它可以在本地打包并成功地作为jar文件启动。在本地运行时,我可以通过“http://localhost:8080/endpoint?params..”访问它的endpoint。我的任务是现在准备这个应用程序跑出码头工人。仍然在本地机器上工作,我创建了一个基于Java:8映像的Dockers容器。在这个容器中,我已