Интеграциялар · API жоқ мемлекеттік портал
API жоқ порталда сот істерін іздеу
Клиент:
Заң компаниясы, NDA
Санат: Интеграциялар
Стек: PHP, cURL, DOMDocument/DOMXPath, JSF сессиясын эмуляциялау
Мерзім: 1–2 апта
Мәселе
Заң компаниясында контрагенттердің сот істерін мемлекеттік сот порталында бағдарламалық іздеу керек болды — порталда жария 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-парсинг
Скрейпинг нәтижелерін дедупликациялау