Fullstack-разработчик (Symfony / Битрикс) с опытом DevOps.

Петр Сальников spbcod

Рейтинг: 30
Верифицирован через Сбер ID
Всего отзывов: 0
  • Работ в портфолио: 42
  • Типовых услуг: 11
  • Работ на продажу: 0
  • Возраст: 50 лет
  • Стаж работы: 27 лет
  • Зарегистрирован: 26.02.2023
  • Образование: Cпециалитет
  • Стоимость услуг (руб): 1 000 за час 200 000 за месяц
Был на сайте:

Разработка REST API сервиса для работы с почтовыми индексами различных стран мира на Symfony

Описание

Создать универсальный API-сервис, который предоставляет данные о почтовых индексах разных стран в удобном JSON-формате. Сервис должен:
- Поддерживать множество стран (Бразилия, Австрия, Беларусь, Финляндия, Франция, Канада и др.)
- Отдавать данные в структурированном виде (страна, индекс, населенный пункт, регион, координаты, точность)
- Иметь систему регистрации пользователей и выдачи персональных токенов
- Предоставлять демо-доступ для ознакомления (токен на 3 дня)
- Быть простым для интеграции в любые приложения (достаточно HTTP-запроса)
- Содержать документацию по полям данных

Решение

Создал модульный REST API на Symfony с поддержкой разных стран и форматов вывода:

/src/
├── Controller/
│ ├── Api/
│ │ ├── PostalCodeController.php # Основной API для индексов
│ │ └── AuthController.php # Регистрация и токены
│ └── Web/
│ └── HomeController.php # Главная страница со списком стран
├── Entity/
│ ├── User.php # Пользователи для API
│ ├── ApiToken.php # Токены доступа
│ └── PostalCode.php # Данные индексов
├── Repository/
│ ├── PostalCodeRepository.php
│ └── ApiTokenRepository.php
├── Service/
│ ├── PostalCodeService.php
│ ├── TokenService.php
│ └── DataImporter/
│ └── GeoNamesImporter.php # Импорт данных из GeoNames
└── DataFixtures/
└── PostalCodeFixtures.php # Загрузка данных по странам

API возвращает данные в формате JSON с полями, описанными в документации:
country_code - ISO 3166-2 код страны
postal_code - Почтовый индекс
place_name - Название населенного пункта
latitude - Широта (WGS84)
longitude - Долгота (WGS84)
accuracy - Точность координат (1=оценка, 4=геоним, 6=центроид)
admin_name1 - Штат/регион/область
admin_name2 - Муниципалитет/район

На главной странице реализован удобный интерфейс со списком всех доступных стран:
Доступные страны (из скриншота):
- Аландские острова
- Андорра
- Австрия
- Беларусь
- Бразилия
- Чили
- Коста-Рика
- Чехия
- Финляндия
- Французская Полинезия
- Гваделупа
- Гернси
- Исландия
- Алжир
- Аргентина
- Австралия
- Бангладеш
- Бермуды
- Канада
- Колумбия
- Кипр
- Доминиканская Республика
- Фарерские острова
- Франция
- Французская Гвиана
- Гренландия
- Гватемала
- Венгрия
- Ирландия
и д.р.

Результат

Технические результаты
✅ Разработан полноценный REST API на Symfony для работы с почтовыми индексами
✅ Поддержка 30+ стран с возможностью легкого добавления новых
✅ Система регистрации пользователей и выдачи персональных токенов
✅ Демо-доступ с временным токеном (3 дня) для тестирования
✅ Документированный API с описанием всех полей
✅ Три типа запросов: все индексы страны, поиск по индексу, поиск по координатам
✅ Импорт данных из официальных источников (GeoNames)

Для пользователей
✅ Простая интеграция через HTTP-запросы
✅ Понятная документация с примерами на PHP
✅ Бесплатный демо-доступ для ознакомления
✅ Регистрация для получения постоянного токена

Презентация проекта

Скриншот 26-02-2026 153609.jpg

Оценили проект:

0