CreateUserWithTasks
Это общедоступный API-метод, который вы можете подергать для ознакомления.
Все методы сделаны для моего курса «Тестирование REST API». Теорию я выкладываю на youtube и в блог, а за практикой заходите!
Метод с массивами!
CreateUser— связывает с существующими задачамиCreateUserWithTasks— создает и юзера, и таски
REST — http://users.bugred.ru/tasks/rest/createuserwithtasks
Входные параметры
| Имя параметра | Тип | Обязательный? | Описание |
|---|---|---|---|
email | строка | да | email пользователя |
name | строка | да | имя пользователя |
tasks | массив | да | Перечень задач, за которые будет отвечать пользователь |
companies | массив | нет | Перечень компаний, к которым пользователь относится |
hobby | строка | нет | Хобби |
adres | строка | нет | Адрес |
name1 | строка | нет | Имя 1 |
surname1 | строка | нет | Фамилия 1 |
fathername1 | строка | нет | Отчество 1 |
cat | строка | нет | Кошечка |
dog | строка | нет | Собачка |
parrot | строка | нет | Попугайчик |
cavy | строка | нет | Морская свинка |
hamster | строка | нет | Хомячок |
squirrel | строка | нет | Белочка |
phone | строка | нет | Телефон |
inn | строка | нет | ИНН |
gender | m / f | нет | Пол |
birthday | дата | нет | Дата рождения в формате дд.мм.гггг |
date_start | дата | нет | Начал работать в компании (в формате дд.мм.гггг) |
Результирующие данные
| Имя параметра | Описание |
|---|---|
| party | Информация по сохраненному клиенту |
Особенности использования
Фишка в том, что я могу создать юзера и сразу навязать ему задачу и указать где он работает.
Поля юзера — такие же, как в FullUpdateUser
+ блок <companies> (максимум 3 в одном запросе, необязательный блок. Отсылка на компанию по ее ИД)
+ блок <tasks> (максимум 5 в одном запросе, обязательный блок. Задача создается по паре "Название" + "Описание")
Обязательные поля — name, email и блоки задач
Остальные проверки такие же, как в интерфейсе:
- Имя и емейл должны быть уникальными
- ИНН — 12 цифр
Примеры вызова
Пример 1. План-максимум, все поля
Запрос:
{
"email": "test_cu_3@mail.com",
"name": "Рестовый 3",
"tasks": [{
"title": "Первая задача 2",
"description": "Первая задача 111"
},
{
"title": "Вторая задача 2",
"description": "Вторая задача 111"
}
],
"companies": [19, 20],
"hobby":"Стрельба из лука, Настолки",
"adres":"адрес 1",
"name1":"Тестовый, ясен пень",
"surname1":"Иванов",
"fathername1":"Петров",
"cat":"Маруся",
"dog":"Ушастый",
"parrot":"Васька",
"cavy":"Кто ты?",
"hamster":"Хомяк",
"squirrel":"Белая горячка к нам пришла",
"phone":"333 33 33",
"inn":"123456789012",
"gender":"m",
"birthday":"01.01.1900",
"date_start":"11.11.2000"
}
Ответ:
{
"name": "Рестовый 3",
"name1": "Тестовый, ясен пень",
"hobby": "Стрельба из лука, Настолки",
"surname1": "Иванов",
"fathername1": "Петров",
"cat": "Маруся",
"dog": "Ушастый",
"parrot": "Васька",
"cavy": "Кто ты?",
"hamster": "Хомяк",
"squirrel": "Белая горячка к нам пришла",
"phone": "333 33 33",
"adres": "адрес 1",
"gender": "m",
"date_start": {
"sec": 973890000,
"usec": 0
},
"date_updated": {
"sec": 1538362106,
"usec": 80000
},
"birthday": {
"sec": -2208997817,
"usec": 0
},
"role": [
"user"
],
"date_register": {
"sec": 1538362106,
"usec": 80000
},
"date": "2018-10-01",
"email": "test_cu_3@mail.com",
"by_user": "manager@mail.ru",
"companies": [
{
"name": "Иванов 6",
"id": 20
},
{
"name": "Иванов 5",
"id": 19
}
],
"tasks": [
{
"name": "Первая задача 2",
"id": 47
},
{
"name": "Вторая задача 2",
"id": 48
}
]
}
Пример 2. План-минимум, только name и email из полей клиента
Запрос
{
"email": "test_cu_26@mail.com",
"name": "Рестовый 6",
"tasks": [{
"title": "Первая задача",
"description": "Первая задача 11"
},
{
"title": "Вторая задача",
"description": "Вторая задача 11"
}
]
}
Ответ:
{
"name": "Рестовый 6",
"date_updated": {
"sec": 1538326598,
"usec": 100000
},
"role": [
"user"
],
"date_register": {
"sec": 1538326598,
"usec": 100000
},
"date": "2018-09-30",
"email": "test_cu_26@mail.com",
"by_user": "manager@mail.ru",
"companies": null,
"tasks": [
{
"name": "Первая задача",
"id": 43
},
{
"name": "Вторая задача",
"id": 44
}
]
}
Пример 3. SOAP с массивом данных
Запрос
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:wrap="http://foo.bar/wrappersoapserver" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">
<soapenv:Header/>
<soapenv:Body>
<wrap:CreateUserWithTasks>
<email>newsupermail255@noibiz.com</email>
<name>SOAP name 25</name>
<tasks>
<task>
<task_title>Первая задача(soap 1)</task_title>
<task_description>Описание</task_description>
</task>
<task>
<task_title>Вторая задача(soap 1)</task_title>
<task_description>Описание</task_description>
</task>
</tasks>
<companies soapenc:arrayType="xsd:array[]">
<item>513</item>
<item>20</item>
</companies>
</wrap:CreateUserWithTasks>
</soapenv:Body>
</soapenv:Envelope>
Ответ:
<SOAP-ENV:Envelope SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://users.bugred.ru/tasks/soap/WrapperSoapServer.php" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/">
<SOAP-ENV:Body>
<ns1:CreateUserWithTasksResponse>
<return xsi:type="SOAP-ENC:Struct">
<email xsi:type="xsd:string">newsupermail255@noibiz.com</email>
<name xsi:type="xsd:string">SOAP name 25</name>
<avatar xsi:nil="true"/>
<password xsi:nil="true"/>
<birthday xsi:type="xsd:int">0</birthday>
<gender xsi:nil="true"/>
<date_start xsi:type="xsd:int">0</date_start>
<hobby xsi:nil="true"/>
<name1 xsi:type="xsd:string"/>
<surname1 xsi:type="xsd:string"/>
<fathername1 xsi:type="xsd:string"/>
<cat xsi:type="xsd:string"/>
<dog xsi:type="xsd:string"/>
<parrot xsi:type="xsd:string"/>
<cavy xsi:type="xsd:string"/>
<hamster xsi:type="xsd:string"/>
<squirrel xsi:type="xsd:string"/>
<phone xsi:type="xsd:string"/>
<adres xsi:type="xsd:string"/>
<tasks SOAP-ENC:arrayType="xsd:int[2]" xsi:type="SOAP-ENC:Array">
<item xsi:type="xsd:int">303</item>
<item xsi:type="xsd:int">304</item>
</tasks>
<companies SOAP-ENC:arrayType="xsd:int[1]" xsi:type="SOAP-ENC:Array">
<item xsi:type="xsd:int">20</item>
</companies>
</return>
</ns1:CreateUserWithTasksResponse>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>