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>