У разработчиков ТЗ точно не было. Но менеджер имел достаточно однозначную задачу - сделать АПИ, с помощью которого можно получить все товары и с помощью которого можно проверять, изменились ли данные. Это они должны были сделать еще год назад, но сделали "на коленке", хотя, в принципе, задача тривиальная. Но параметры методов интерфейса уже готового АПИ неочевидны
Александр: а если я передам в параметре shopId значение 32? Да, я заранее знаю, что при прочих равных это решение не будет работать - я просто хочу донести мысль о необходимости хоть каких-либо комментариев для интерфейса.
Александр: да нет) Мой вопрос заключался в споре с менеджером. Сейчас у меня есть рабочий код текущей версии АПИ, но изначально его не было, и не было ответа вообще - была ошибка. Ну из-за этого с ссорился с менеджером компании, которая это АПИ делала - я утверждал, что WSDL недостаточно для понимания самой логики. А угадывать параметры является тратой времени - это я пытался тебе объяснить, потому что думал, что ты дискутируешь в аспекте того, что по интерфейсу всегда можно понять логику :)
Сергей Протько: "тут надо знать что вообще делает api" - у меня было понимание только исходя с задачи: "получение списка товаров". Просто чтобы Вы понимали $date = '1970-01-01T00:00:01Z'; - не работает. Изначально у меня не было никакого представление ни о структуре данных, ни о схеме работы, ни об описании интерфейса.
Александр: $date = '2015-01-01T00:00:01Z'; с этим работает. Ссылку, к сожалению, не могу дать - это корпоративная информация, а API реализовано без дополнительного уровня защиты
Александр: xs:complexType name=getProductListRequest . Одно дело, если бы это было бы очевидно. Но тут ведь навскидку объяснить, что должен получить метод - сложновато
Я уже выше писал, что неправильно предположив значения параметров (name=dt type=xs:dateTime и name=firstTime type=xs:boolean) я не получил ожидаемого результата. В WDSL ведь описывается только интерфейс взаимодействия, а в данном примере имела место еще и логика.
Сергей Протько: не возвращало данных. Там нужно было проставить $date = '2015-01-01T00:00:01Z'; $firstTime = 'true'; По логике, которую мне позже предоставили, это должны быть товары, измененные после некой даты, если второй параметр false. Булевой параметр true значит, что обращение по данному магазину идет впервые, то есть нужно выгрузить все товары. Это типа полиморфизм.