Недавно я рассказывал о Headhunter API для публикации вакансий, упомянув Superjob. Теперь, реализовав тот же функционал на Superjob API будет справедливо поделиться с вами полученным опытом.
Итак, есть задача по публикации вакансий на Superjob, вам понадобятся:
Здесь всё ожидаемо — версионность присутствует и передаётся в URLе:
https://api.superjob.ru/:version/method_name/:params
Тоже максимально простая процедура — создать аккаунт, создать приложение, получить токены. Без ожиданий, регистрации и смс.
redirect_uri
, передаваемый в параметрах, видимо, вообще не связан с Callback URL, указанном в настройках приложения. Его (Callback URL) можно даже и не указывать, всё будет работать.
Обязанности, требования и условия — необязательные параметры вакансии, а вот название компании и описание её деятельности — обязательно нужно передавать в каждую вакансию.
В прошлый раз (на HeadHunter) была попытка публиковать ссылку внутри вакансии, здесь же нашёлся параметр url
, однако, где он отображается в вакансии понять не удалось.
Вместо ожидаемого superjob/vacancies/id ссылка формируется в виде vacancy-name-id.html, но в ответе приходит лишь id вакансии. Русский текст проходит транслитерацию неизвестным алгоритмом (или по одному из N ГОСТов), что делает невозможным формировать ссылку на своей стороне. Приходится делать отдельный запрос на роут api откуда уже возвращается полная ссылка.
Superjob объединяет эти два поля, предлагая из списка, например, частичную занятость или неполный день. Это неудобно когда есть парттаймеры, срочные договора и другие варианты развития событий.
В прошлый раз я упомянул, что вакансии на HeadHunter поддерживают HTML и на сайте для этого прикручен WYSIWYG-редактор. В дополнение к задаче публикации ссылок в вакансиях (которая слегка провалилась), прилетела и задача прикрутить WYSIWYG для них в нашем приложении. Текст вакансии вместе с форматированием сохраняется в БД, поэтому в таком же виде он улетел на Superjob, который HTML не поддерживает. В принципе, ожидаемо, но главный факап в том, что посмотрев эту же вакансию на HeadHunter, обнаружилось, что он тоже не поддерживает присланное форматирование! Теги просто удаляются и на выходе остаётся голый текст. Как итог — WYSIWYG будет выпиливаться, а все записанные вакансии с HTML надо будет в трёх БД как-то распарсить и почистить лишнее.
Хочется написать много плохих слов о работе на аутсорсе, но как-нибудь в другой раз.
Если сравнивать HeadHunter и Superjob, то очевидно, что с последним всё гораздо проще. Интеграция построилась очень быстро — тексты ошибок не сбивали с толку, всё удалось протестировать на нескольких окружениях из-за необязательности Callback URL.
Что меня расстроило — это отсутствие Superjob API на Github, зато повеселил там "простой клиент" на PHP в полторы тысячи строк. Для общения с техподдержкой есть обратная связь, однако, в форме обращения отсутствует категория вопросов по API. Ну такое.
В целом, вряд ли можно однозначно сказать что у кого-то лучше, у кого-то хуже. У Superjob есть к чему придраться, но в конечном счёте сервис предоставляет нормальный API, полностью решающий наши задачи.
К сожалению, не доступен сервер mySQL