Интеграциялар · API жоқ мемлекеттік портал
API жоқ порталда сот істерін іздеу
Клиент:
sattar.kz
Санат: Интеграциялар
Стек: PHP, cURL, DOMDocument/DOMXPath, JSF сессиясын эмуляциялау
Мерзім: 1–2 апта
Мәселе
sattar.kz-да контрагенттердің сот істерін мемлекеттік сот порталында бағдарламалық іздеу керек болды — порталда жария API жоқ, тек ескірген JSF/RichFaces веб-интерфейсі бар.
Шектеулер
Портал REST-сіз legacy Java/JSF стегінде құрылған: форманың қызметтік идентификаторлары мен вёрсткасы портал релиздері арасында тұрақсыз, авторизация сессия күйіне негізделген.
Не істедім
- Браузер сессиясын эмуляциялау: cookie jar + JSF ViewState және Ajax partial-response өңдеу
- Сот пен жыл бойынша сүзгілермен процесс тарапы бойынша авторизация және іс іздеу
- Вёрстка өзгергенде fallback-стратегиялары бар каскадты селекторлармен нәтижелердің DOMXPath-парсері
- Нәтижелерді дедупликациялау және шикі HTML орнына құрылымдық JSON беру
- Парсинг логикасын түзетусіз жылдам қайта баптау үшін конфигурацияны константаларға шығару
Архитектура
Сот порталы (JSF/RichFaces)
→ Сессияны эмуляциялау
→ XPath-парсер
→ JSON API
Нәтиже
Контрагент бойынша іс іздеу порталға қолмен барудың орнына бағдарламалық JSON-сұранысқа айналды — вёрсткадағы шағын өзгерістерге fallback-парсинг арқасында төзімді.
Нені қайта қолдануға болады
REST API жоқ legacy JSF-порталын эмуляциялау үлгісі
Вёрстка өзгергенде graceful fallback-пен XPath-парсинг
Скрейпинг нәтижелерін дедупликациялау