UNPKG

@36node/template-service

Version:

A service boilerplate with openapi,rest and mongodb.

1,103 lines (1,102 loc) 33.2 kB
{ "info": { "_postman_id": "abd64cfd-8645-485e-b9ab-ad81b5a014a9", "name": "store-pet-curd", "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json" }, "item": [ { "name": "Create a pet", "event": [ { "listen": "test", "script": { "id": "1265e69b-8071-4715-83c7-ba98b27a2c5c", "exec": [ "var Ajv = require('ajv');", "var ajv = new Ajv({ logger: console, coerceTypes: true, unknownFormats: [\"int32\"] });", "", "const res = {", " content: pm.response.json(),", " headers: pm.response.headers.reduce((c, k) => ({...c, [k.key]: k.value }), {})", "}", "", "const schema = {\"type\":\"object\",\"required\":[],\"properties\":{\"content\":{\"allOf\":[{\"type\":\"object\",\"required\":[\"name\"],\"properties\":{\"name\":{\"type\":\"string\",\"description\":\"pet's name\"},\"tag\":{\"type\":\"string\",\"enum\":[\"DOG\",\"CAT\"]},\"age\":{\"type\":\"integer\",\"format\":\"int32\"},\"birthAt\":{\"type\":\"string\",\"format\":\"date\"},\"grade\":{\"type\":\"integer\",\"format\":\"int32\"}}},{\"type\":\"object\",\"required\":[\"id\"],\"properties\":{\"id\":{\"type\":\"string\"}}}]}}};", "", "pm.test(\"Status code is 201\", function () {", " pm.response.to.have.status(201);", "});", "", "pm.test(\"Json body schema test\", function(){", " pm.expect(ajv.validate(schema, data)).to.be.true;", "})", "", "pm.test(\"result data test\", function(){", " pm.expect(res.content.name).equal(pm.variables.get(\"name\"));", " pm.expect(res.content.age.toString()).equal(pm.variables.get(\"age\"));", " pm.expect(res.content.tag).equal(pm.variables.get(\"tag\"));", " pm.expect(res.content.owner).equal(pm.variables.get(\"user\"));", "})", "", "// 为后续测试准备数据", "pm.environment.set(\"petId\", res.content.id);" ], "type": "text/javascript" } } ], "_postman_id": "795883c8-2bf0-443d-9fc5-f441e228b9b0", "protocolProfileBehavior": { "disableBodyPruning": true }, "request": { "auth": { "type": "bearer", "bearer": [ { "key": "token", "value": "{{token}}", "type": "string" } ] }, "method": "POST", "header": [ { "key": "Accept", "value": "application/json" }, { "key": "Content-Type", "value": "application/json" } ], "body": { "mode": "raw", "raw": "{\n \"name\": \"{{name}}\",\n \"tag\": \"{{tag}}\",\n \"age\": {{age}},\n \"birthAt\": \"{{birthAt}}\",\n \"grade\": {{grade}},\n \"owner\": \"{{user}}\"\n}", "options": { "raw": {} } }, "url": { "raw": "{{baseUrl}}/pets", "host": ["{{baseUrl}}"], "path": ["pets"] } }, "response": [ { "id": "78861a2c-943b-4069-bd8b-5cde475a2bd0", "name": "Response_201", "originalRequest": { "auth": { "type": "bearer", "bearer": [ { "key": "token", "value": "{{token}}", "type": "string" } ] }, "method": "POST", "header": [ { "key": "Accept", "value": "application/json" }, { "key": "Content-Type", "value": "application/json" } ], "body": { "mode": "raw", "raw": "{\n \"name\": \"{{name}}\",\n \"tag\": \"{{tag}}\",\n \"age\": \"{{age}}\",\n \"birthAt\": \"{{birthAt}}\",\n \"grade\": \"{{grade}}\"\n}" }, "url": { "raw": "{{baseUrl}}/pets", "host": ["{{baseUrl}}"], "path": ["pets"] } }, "status": "The Pet created", "code": 201, "_postman_previewlanguage": "Text", "header": [ { "key": "Content-type", "value": "application/json" } ], "cookie": [], "responseTime": null, "body": null } ] }, { "name": "Find pet by id", "event": [ { "listen": "test", "script": { "id": "6481d2e3-fe3a-450e-b955-b4ad30104ae0", "exec": [ "var Ajv = require('ajv');", "var ajv = new Ajv({ logger: console, coerceTypes: true, unknownFormats: [\"int32\"] });", "", "pm.test(\"Status code is 200\", function () {", " pm.response.to.have.status(200);", "});", "", "const schema = {\"type\":\"object\",\"required\":[],\"properties\":{\"content\":{\"allOf\":[{\"type\":\"object\",\"required\":[\"name\"],\"properties\":{\"name\":{\"type\":\"string\",\"description\":\"pet's name\"},\"tag\":{\"type\":\"string\",\"enum\":[\"DOG\",\"CAT\"]},\"age\":{\"type\":\"integer\",\"format\":\"int32\"},\"birthAt\":{\"type\":\"string\",\"format\":\"date\"},\"grade\":{\"type\":\"integer\",\"format\":\"int32\"}}},{\"type\":\"object\",\"required\":[\"id\"],\"properties\":{\"id\":{\"type\":\"string\"}}}]}}};", "pm.test(\"Json body schema test\", function(){", " const res = {", " content: pm.response.json(),", " headers: pm.response.headers.reduce((c, k) => ({...c, [k.key]: k.value }), {})", " }", " pm.expect(ajv.validate(schema, data)).to.be.true;", "})", "" ], "type": "text/javascript" } } ], "_postman_id": "f476457f-92d4-465c-8c7b-a526aa6f5be8", "protocolProfileBehavior": { "disableBodyPruning": true }, "request": { "auth": { "type": "bearer", "bearer": [ { "key": "token", "value": "{{token}}", "type": "string" } ] }, "method": "GET", "header": [ { "key": "Accept", "value": "application/json" } ], "url": { "raw": "{{baseUrl}}/pets/:petId", "host": ["{{baseUrl}}"], "path": ["pets", ":petId"], "variable": [ { "key": "petId", "value": "{{petId}}", "type": "string" } ] } }, "response": [ { "id": "e2963b0b-00ee-4e06-aa76-0937ecc8172c", "name": "Response_200", "originalRequest": { "auth": { "type": "bearer", "bearer": [ { "key": "token", "value": "{{token}}", "type": "string" } ] }, "method": "GET", "header": [ { "key": "Accept", "value": "application/json" } ], "url": { "raw": "{{baseUrl}}/pets/:petId", "host": ["{{baseUrl}}"], "path": ["pets", ":petId"], "variable": [ { "key": "petId", "value": "petId" } ] } }, "status": "Expected response to a valid request", "code": 200, "_postman_previewlanguage": "Text", "header": [ { "key": "Content-type", "value": "application/json" } ], "cookie": [], "responseTime": null, "body": null } ] }, { "name": "Find pet by wrong id", "event": [ { "listen": "test", "script": { "id": "a28c4380-a224-437f-8c18-a7b1026721d0", "exec": [ "var Ajv = require('ajv');", "var ajv = new Ajv({ logger: console, coerceTypes: true, unknownFormats: [\"int32\"] });", "", "pm.test(\"Status code is 404\", function () {", " pm.response.to.have.status(404);", "});", "", "const schema = {", " type: \"object\",", " required: [\"name\"],", " properties: {", " name: {", " type: \"string\"", " },", " message: {", " type: \"string\"", " },", " code: {", " type: \"string\"", " },", " path: {", " type: \"string\"", " },", " value: {", " type: \"string\"", " },", " keyword: {", " type: \"string\"", " }", " }", "}", "", "pm.test(\"err schema test\", function(){", " pm.expect(ajv.validate(schema, pm.response.json())).to.be.true;", "})", "" ], "type": "text/javascript" } } ], "_postman_id": "9446f20f-705c-42c5-9916-ec180f09bbc8", "protocolProfileBehavior": { "disableBodyPruning": true }, "request": { "auth": { "type": "bearer", "bearer": [ { "key": "token", "value": "{{token}}", "type": "string" } ] }, "method": "GET", "header": [ { "key": "Accept", "value": "application/json" } ], "url": { "raw": "{{baseUrl}}/pets/5ee6d60435d1603c47d0263b", "host": ["{{baseUrl}}"], "path": ["pets", "5ee6d60435d1603c47d0263b"] } }, "response": [ { "id": "4896e9c0-4cf2-4b49-9974-0a823248bbef", "name": "Response_200", "originalRequest": { "auth": { "type": "bearer", "bearer": [ { "key": "token", "value": "{{token}}", "type": "string" } ] }, "method": "GET", "header": [ { "key": "Accept", "value": "application/json" } ], "url": { "raw": "{{baseUrl}}/pets/:petId", "host": ["{{baseUrl}}"], "path": ["pets", ":petId"], "variable": [ { "key": "petId", "value": "petId" } ] } }, "status": "Expected response to a valid request", "code": 200, "_postman_previewlanguage": "Text", "header": [ { "key": "Content-type", "value": "application/json" } ], "cookie": [], "responseTime": null, "body": null } ] }, { "name": "Update pet", "event": [ { "listen": "test", "script": { "id": "95914efd-0005-47f7-a8a2-b863b45c1fab", "exec": [ "var Ajv = require('ajv');", "var ajv = new Ajv({ logger: console, coerceTypes: true, unknownFormats: [\"int32\"] });", "", "pm.test(\"Status code is 200\", function () {", " pm.response.to.have.status(200);", "});", "", "const schema = {\"type\":\"object\",\"required\":[],\"properties\":{\"content\":{\"allOf\":[{\"type\":\"object\",\"required\":[\"name\"],\"properties\":{\"name\":{\"type\":\"string\",\"description\":\"pet's name\"},\"tag\":{\"type\":\"string\",\"enum\":[\"DOG\",\"CAT\"]},\"age\":{\"type\":\"integer\",\"format\":\"int32\"},\"birthAt\":{\"type\":\"string\",\"format\":\"date\"},\"grade\":{\"type\":\"integer\",\"format\":\"int32\"}}},{\"type\":\"object\",\"required\":[\"id\"],\"properties\":{\"id\":{\"type\":\"string\"}}}]}}};", "pm.test(\"Json body schema test\", function(){", " const res = {", " content: pm.response.json(),", " headers: pm.response.headers.reduce((c, k) => ({...c, [k.key]: k.value }), {})", " }", " pm.expect(ajv.validate(schema, data)).to.be.true;", "})", "" ], "type": "text/javascript" } } ], "_postman_id": "3bbe3dc7-6e65-4fad-b92e-ddc5767b264a", "protocolProfileBehavior": { "disableBodyPruning": true }, "request": { "auth": { "type": "bearer", "bearer": [ { "key": "token", "value": "{{token}}", "type": "string" } ] }, "method": "PUT", "header": [ { "key": "Accept", "value": "application/json" }, { "key": "Content-Type", "value": "application/json" } ], "body": { "mode": "raw", "raw": "{\n \"name\": \"{{name}}\",\n \"tag\": \"{{tag}}\",\n \"age\": \"{{age}}\",\n \"birthAt\": \"{{birthAt}}\",\n \"grade\": \"{{grade}}\"\n}", "options": { "raw": {} } }, "url": { "raw": "{{baseUrl}}/pets/:petId", "host": ["{{baseUrl}}"], "path": ["pets", ":petId"], "variable": [ { "key": "petId", "value": "{{petId}}", "type": "string" } ] } }, "response": [ { "id": "1851c86b-4cba-47b7-93f4-543d0b08c790", "name": "Response_200", "originalRequest": { "auth": { "type": "bearer", "bearer": [ { "key": "token", "value": "{{token}}", "type": "string" } ] }, "method": "PUT", "header": [ { "key": "Accept", "value": "application/json" }, { "key": "Content-Type", "value": "application/json" } ], "body": { "mode": "raw", "raw": "{\n \"name\": \"{{name}}\",\n \"tag\": \"{{tag}}\",\n \"age\": \"{{age}}\",\n \"birthAt\": \"{{birthAt}}\",\n \"grade\": \"{{grade}}\"\n}" }, "url": { "raw": "{{baseUrl}}/pets/:petId", "host": ["{{baseUrl}}"], "path": ["pets", ":petId"], "variable": [ { "key": "petId", "value": "petId" } ] } }, "status": "The pet", "code": 200, "_postman_previewlanguage": "Text", "header": [ { "key": "Content-type", "value": "application/json" } ], "cookie": [], "responseTime": null, "body": null } ] }, { "name": "userX can't update pet", "event": [ { "listen": "test", "script": { "id": "2febf2d2-a739-4330-a73f-39ffc06dcfc4", "exec": [ "pm.test(\"Status code is 403\", function () {", " pm.response.to.have.status(403);", "});" ], "type": "text/javascript" } } ], "_postman_id": "e35015bc-4707-48b3-b6f4-f7e681aeb634", "protocolProfileBehavior": { "disableBodyPruning": true }, "request": { "auth": { "type": "bearer", "bearer": [ { "key": "token", "value": "{{tokenX}}", "type": "string" } ] }, "method": "PUT", "header": [ { "key": "Accept", "value": "application/json" }, { "key": "Content-Type", "value": "application/json" } ], "body": { "mode": "raw", "raw": "{\n \"name\": \"{{name}}\",\n \"tag\": \"{{tag}}\",\n \"age\": \"{{age}}\",\n \"birthAt\": \"{{birthAt}}\",\n \"grade\": \"{{grade}}\"\n}", "options": { "raw": {} } }, "url": { "raw": "{{baseUrl}}/pets/:petId", "host": ["{{baseUrl}}"], "path": ["pets", ":petId"], "variable": [ { "key": "petId", "value": "{{petId}}", "type": "string" } ] } }, "response": [ { "id": "c034c6e6-7195-4a2e-b20d-eff085019e01", "name": "Response_200", "originalRequest": { "auth": { "type": "bearer", "bearer": [ { "key": "token", "value": "{{token}}", "type": "string" } ] }, "method": "PUT", "header": [ { "key": "Accept", "value": "application/json" }, { "key": "Content-Type", "value": "application/json" } ], "body": { "mode": "raw", "raw": "{\n \"name\": \"{{name}}\",\n \"tag\": \"{{tag}}\",\n \"age\": \"{{age}}\",\n \"birthAt\": \"{{birthAt}}\",\n \"grade\": \"{{grade}}\"\n}" }, "url": { "raw": "{{baseUrl}}/pets/:petId", "host": ["{{baseUrl}}"], "path": ["pets", ":petId"], "variable": [ { "key": "petId", "value": "petId" } ] } }, "status": "The pet", "code": 200, "_postman_previewlanguage": "Text", "header": [ { "key": "Content-type", "value": "application/json" } ], "cookie": [], "responseTime": null, "body": null } ] }, { "name": "Create another pet", "event": [ { "listen": "test", "script": { "id": "846bb8bf-0653-46d2-809a-d957577000cd", "exec": [ "pm.test(\"Status code is 201\", function () {", " pm.response.to.have.status(201);", "});" ], "type": "text/javascript" } } ], "_postman_id": "b6d0ccdf-f959-4bf5-bfe0-f63b7ab60d76", "protocolProfileBehavior": { "disableBodyPruning": true }, "request": { "auth": { "type": "bearer", "bearer": [ { "key": "token", "value": "{{token}}", "type": "string" } ] }, "method": "POST", "header": [ { "key": "Accept", "value": "application/json" }, { "key": "Content-Type", "value": "application/json" } ], "body": { "mode": "raw", "raw": "{\n \"name\": \"{{name}}\",\n \"tag\": \"{{tag}}\",\n \"age\": \"{{age}}\",\n \"birthAt\": \"{{birthAt}}\",\n \"grade\": \"{{grade}}\",\n \"owner\": \"{{user}}\"\n}", "options": { "raw": {} } }, "url": { "raw": "{{baseUrl}}/pets", "host": ["{{baseUrl}}"], "path": ["pets"] } }, "response": [ { "id": "61eae70a-ccf8-4a39-8ce6-9158a05f00b5", "name": "Response_201", "originalRequest": { "auth": { "type": "bearer", "bearer": [ { "key": "token", "value": "{{token}}", "type": "string" } ] }, "method": "POST", "header": [ { "key": "Accept", "value": "application/json" }, { "key": "Content-Type", "value": "application/json" } ], "body": { "mode": "raw", "raw": "{\n \"name\": \"{{name}}\",\n \"tag\": \"{{tag}}\",\n \"age\": \"{{age}}\",\n \"birthAt\": \"{{birthAt}}\",\n \"grade\": \"{{grade}}\"\n}" }, "url": { "raw": "{{baseUrl}}/pets", "host": ["{{baseUrl}}"], "path": ["pets"] } }, "status": "The Pet created", "code": 201, "_postman_previewlanguage": "Text", "header": [ { "key": "Content-type", "value": "application/json" } ], "cookie": [], "responseTime": null, "body": null } ] }, { "name": "List all pets", "event": [ { "listen": "test", "script": { "id": "61c94f53-40ee-43b5-a084-00c4609579c6", "exec": [ "var Ajv = require('ajv');", "var ajv = new Ajv({ logger: console, coerceTypes: true, unknownFormats: [\"int32\"] });", "", "var res = {", " content: pm.response.json(),", " headers: pm.response.headers.reduce((c, k) => ({...c, [k.key]: k.value }), {})", "}", "", "const schema = {\"type\":\"object\",\"required\":[],\"properties\":{\"content\":{\"type\":\"array\",\"items\":{\"allOf\":[{\"type\":\"object\",\"required\":[\"name\"],\"properties\":{\"name\":{\"type\":\"string\",\"description\":\"pet's name\"},\"tag\":{\"type\":\"string\",\"enum\":[\"DOG\",\"CAT\"]},\"age\":{\"type\":\"integer\",\"format\":\"int32\"},\"birthAt\":{\"type\":\"string\",\"format\":\"date\"},\"grade\":{\"type\":\"integer\",\"format\":\"int32\"}}},{\"type\":\"object\",\"required\":[\"id\"],\"properties\":{\"id\":{\"type\":\"string\"}}}]}},\"headers\":{\"type\":\"object\",\"required\":[\"x-total-count\"],\"properties\":{\"x-total-count\":{\"type\":\"integer\"}}}}};", "", "pm.test(\"Status code is 200\", function () {", " pm.response.to.have.status(200);", "});", "", "pm.test(\"result count should right\", function () {", " pm.expect(res.content.length).to.equal(2);", " pm.expect(Number(res.headers[\"x-total-count\"])).to.be.above(1);", "})", "", "pm.test(\"Json body schema test\", function(){", " pm.expect(ajv.validate(schema, res)).to.be.true;", "})", "" ], "type": "text/javascript" } } ], "_postman_id": "6087d5be-7c29-4aaf-b5ed-348a093a33d9", "protocolProfileBehavior": { "disableBodyPruning": true }, "request": { "auth": { "type": "bearer", "bearer": [ { "key": "token", "value": "{{token}}", "type": "string" } ] }, "method": "GET", "header": [ { "key": "Accept", "value": "application/json" }, { "key": "Authorization", "value": "Bearer {{token}}" } ], "url": { "raw": "{{baseUrl}}/pets?_limit=2&tag=CAT", "host": ["{{baseUrl}}"], "path": ["pets"], "query": [ { "key": "_limit", "value": "2" }, { "key": "tag", "value": "CAT" }, { "key": "age_gt", "value": "", "disabled": true }, { "key": "_select", "value": "", "disabled": true }, { "key": "birthAt_gt", "value": "", "disabled": true }, { "key": "birthAt_lt", "value": "", "disabled": true }, { "key": "grade_gt", "value": "", "disabled": true }, { "key": "grade_lt", "value": "", "disabled": true } ] } }, "response": [ { "id": "cdd12957-89a2-40cc-be9a-66dea787a5ed", "name": "Response_200", "originalRequest": { "auth": { "type": "bearer", "bearer": [ { "key": "token", "value": "{{token}}", "type": "string" } ] }, "method": "GET", "header": [ { "key": "Accept", "value": "application/json" }, { "key": "Authorization", "value": "Bearer {{token}}" } ], "body": { "mode": "raw", "raw": "" }, "url": { "raw": "{{host}}/pets?_limit=10&tag=&age_gt=&_select=&tag=&age_gt=&birthAt_gt=&birthAt_lt=&grade_gt=&grade_lt=", "host": ["{{host}}"], "path": ["pets"], "query": [ { "key": "_limit", "value": "10" }, { "key": "tag", "value": "" }, { "key": "age_gt", "value": "" }, { "key": "_select", "value": "" }, { "key": "tag", "value": "" }, { "key": "age_gt", "value": "" }, { "key": "birthAt_gt", "value": "" }, { "key": "birthAt_lt", "value": "" }, { "key": "grade_gt", "value": "" }, { "key": "grade_lt", "value": "" } ] } }, "status": "A paged array of pets", "code": 200, "_postman_previewlanguage": "Text", "header": [ { "key": "Content-type", "value": "application/json" }, { "key": "x-total-count", "value": "unset" } ], "cookie": [], "responseTime": null, "body": "[\n {\n \"id\": 1,\n \"name\": \"aa\",\n \"tag\": \"red\",\n \"age\": 3\n },\n {\n \"id\": 2,\n \"name\": \"bb\",\n \"tag\": \"happy\",\n \"age\": 5\n },\n {\n \"id\": 3,\n \"name\": \"cc\",\n \"tag\": \"husky\",\n \"age\": 6\n }\n]\n" } ] }, { "name": "deletePet", "event": [ { "listen": "test", "script": { "id": "5d8b8f1c-9d5a-4eca-9824-8d8ca8e212fb", "exec": [ "var Ajv = require('ajv');", "var ajv = new Ajv({ logger: console, coerceTypes: true, unknownFormats: [\"int32\"] });", "", "pm.test(\"Status code is 204\", function () {", " pm.response.to.have.status(204);", "});", "", "" ], "type": "text/javascript" } } ], "_postman_id": "c4d46215-843c-42b9-bfe9-75af10e22d74", "protocolProfileBehavior": { "disableBodyPruning": true }, "request": { "auth": { "type": "bearer", "bearer": [ { "key": "token", "value": "{{token}}", "type": "string" } ] }, "method": "DELETE", "header": [ { "key": "Accept", "value": "application/json" } ], "url": { "raw": "{{baseUrl}}/pets/:petId", "host": ["{{baseUrl}}"], "path": ["pets", ":petId"], "variable": [ { "key": "petId", "value": "{{petId}}", "type": "string" } ] } }, "response": [ { "id": "9ef00b52-93cf-4fe3-a8fa-604a75f2a6a3", "name": "Response_204", "originalRequest": { "auth": { "type": "bearer", "bearer": [ { "key": "token", "value": "{{token}}", "type": "string" } ] }, "method": "DELETE", "header": [ { "key": "Accept", "value": "application/json" } ], "url": { "raw": "{{baseUrl}}/pets/:petId", "host": ["{{baseUrl}}"], "path": ["pets", ":petId"], "variable": [ { "key": "petId", "value": "petId" } ] } }, "status": "pet deleted", "code": 204, "_postman_previewlanguage": "Text", "header": [], "cookie": [], "responseTime": null, "body": null } ] } ], "event": [ { "listen": "prerequest", "script": { "id": "8c6cff73-b837-4f91-bfcf-52ea7d6872bd", "type": "text/javascript", "exec": [""] } }, { "listen": "test", "script": { "id": "09de23be-a766-4d39-adb4-05327763f9b4", "type": "text/javascript", "exec": [""] } } ], "variable": [ { "id": "a4295301-28d7-44ab-9106-41ea66e0732f", "key": "age", "value": "1", "type": "string" }, { "id": "dd3b3cfd-a7a2-4c4f-88ce-f1cf1aab7fb6", "key": "name", "value": "tom", "type": "string" }, { "id": "16434abe-f92b-46f0-af83-421f50519cda", "key": "tag", "value": "CAT", "type": "string" }, { "id": "38b1bd58-4d15-49ab-8e8a-9484ec797b96", "key": "birthAt", "value": "2020-01-01", "type": "string" }, { "id": "56a604bf-c90b-4c2e-be27-c54754090371", "key": "grade", "value": "1", "type": "string" }, { "id": "45e1131b-a9b0-4954-a859-76ce95862fdc", "key": "userX", "value": "5cb9a4edc48ad400120d28a7", "type": "string" }, { "id": "5ab8da0a-0224-40b0-bcde-6ea7a41b3b7c", "key": "tokenX", "value": "eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyIjoiNWNiOWE0ZWRjNDhhZDQwMDEyMGQyOGE3IiwiZXhwIjoyNTU3MDM1MjU4LCJucyI6Ii9hZHZlbnR1cmVyIn0.Lzzxd4INuDl-cRLre6fNuaVC8i5ylKki3BvU3ehKmjgORfknuAlsBmLLV0QDrQG49hEmBpPyPRVXH7ksiuf_jyOsq5wRIksQpx58iK7qBIGCC6Fgeka4XUkLZ281r_JO8_07ShYyP3l5QOcyMVVZq0Q038_BZ-TPDt8yYtKFpbU", "type": "string" } ] }