{"id":22242271,"url":"https://github.com/rxyalxrd/go_wbtech_lvl_0","last_synced_at":"2026-04-28T23:36:31.619Z","repository":{"id":265675030,"uuid":"896452926","full_name":"Rxyalxrd/Go_WBTECH_LVL_0","owner":"Rxyalxrd","description":"Решение тестового задания WBTech L0","archived":false,"fork":false,"pushed_at":"2024-11-30T12:40:11.000Z","size":20,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-25T10:31:58.965Z","etag":null,"topics":["docker","docker-compose","golang","kafka","makefile","postgresql"],"latest_commit_sha":null,"homepage":"https://tech.wildberries.ru/","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Rxyalxrd.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-11-30T12:03:45.000Z","updated_at":"2024-11-30T12:40:14.000Z","dependencies_parsed_at":"2024-12-01T16:49:11.271Z","dependency_job_id":null,"html_url":"https://github.com/Rxyalxrd/Go_WBTECH_LVL_0","commit_stats":null,"previous_names":["rxyalxrd/go_wbtech_lvl_0"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Rxyalxrd/Go_WBTECH_LVL_0","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Rxyalxrd%2FGo_WBTECH_LVL_0","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Rxyalxrd%2FGo_WBTECH_LVL_0/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Rxyalxrd%2FGo_WBTECH_LVL_0/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Rxyalxrd%2FGo_WBTECH_LVL_0/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Rxyalxrd","download_url":"https://codeload.github.com/Rxyalxrd/Go_WBTECH_LVL_0/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Rxyalxrd%2FGo_WBTECH_LVL_0/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":273986613,"owners_count":25202704,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-09-06T02:00:13.247Z","response_time":2576,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["docker","docker-compose","golang","kafka","makefile","postgresql"],"created_at":"2024-12-03T04:15:20.616Z","updated_at":"2026-04-28T23:36:31.567Z","avatar_url":"https://github.com/Rxyalxrd.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Демонстрационный Сервис Обработки Заказов\n\nСервис обработки заказов - это демонстрационный сервис для управления и отображения данных о заказах. Сервис подключается к базе данных PostgreSQL, подписывается на Kafka для получения данных о заказах, кэширует данные в памяти и предоставляет HTTP API для получения информации о заказах по их идентификаторам.\n\n---\n\n## Что сделано\n\n- Интеграция с PostgreSQL: Хранение данных о заказах в базе данных PostgreSQL.\n- Apache Kafka: Подписка на брокер сообщений Kafka для получения данных о заказах.\n- Кэширование в памяти: Кэширование данных о заказах в памяти для быстрого доступа.\n- HTTP API: Предоставление API для получения информации о заказах по их идентификаторам.\n- Устойчивость: Восстановление кэша из базы данных в случае перезапуска сервиса.\n- Docker-контейнеризация: Удобство развертывания сервисов для тестирования через docker-compose.\n---\n\n## Стэк\n\n- Golang\n- Kafka\n- Zookeper\n- PostgreSQL\n- Makefile\n- Docker\n- Docker-compose\n- Postman\n---\n\n## Примеры запросов\n- POST-запрос\n\n  ```bash\n  {\n     \"order_uid\": \"b563feg7bdg3286ttjr67siej\",\n     \"track_number\": \"WBILMTESTTRACK\",\n     \"entry\": \"WBIL\",\n     \"delivery\": {\n        \"name\": \"Test Testov\",\n        \"phone\": \"+9720000000\",\n        \"zip\": \"2639809\",\n        \"city\": \"Kiryat Mozkin\",\n        \"address\": \"Ploshad Mira 15\",\n        \"region\": \"Kraiot\",\n        \"email\": \"test@gmail.com\"\n     },\n     \"payment\": {\n        \"transaction\": \"b563feb7b2b84b6test\",\n        \"request_id\": \"\",\n        \"currency\": \"USD\",\n        \"provider\": \"wbpay\",\n        \"amount\": 1817,\n        \"payment_dt\": 1637907727,\n        \"bank\": \"alpha\",\n        \"delivery_cost\": 1500,\n        \"goods_total\": 317,\n        \"custom_fee\": 0\n     },\n     \"items\": [\n        {\n           \"chrt_id\": 9934930,\n           \"track_number\": \"WBILMTESTTRACK\",\n           \"price\": 453,\n           \"rid\": \"ab4219087a764ae0btest\",\n           \"name\": \"Mascaras\",\n           \"sale\": 30,\n           \"size\": \"0\",\n           \"total_price\": 317,\n           \"nm_id\": 2389212,\n           \"brand\": \"Vivienne Sabo\",\n           \"status\": 202\n        }\n     ],\n     \"locale\": \"en\",\n     \"internal_signature\": \"\",\n     \"customer_id\": \"test\",\n     \"delivery_service\": \"meest\",\n     \"shardkey\": \"9\",\n     \"sm_id\": 99,\n     \"date_created\": \"2021-11-26T06:22:19Z\",\n     \"oof_shard\": \"1\"\n  }\n  ```\n\n  Ответ\n  ```bash\n  {\"message\": \"Order processed and saved successfully\"}\n  ```\n\n- GET-запрос\n  ```bash\n  http://127.0.0.1:8080/orders/b563feg7b25sdg3284b6ttjrfhsiej\n  ```\n\n  Ответ\n  ```bash\n    \"order\": {\n        \"id\": 1,\n        \"order_uid\": \"b563feg7b2b84b6test\",\n        \"track_number\": \"WBILMTESTTRACK\",\n        \"entry\": \"WBIL\",\n        \"locale\": \"en\",\n        \"internal_signature\": \"\",\n        \"customer_id\": \"test\",\n        \"delivery_service\": \"meest\",\n        \"shardkey\": \"9\",\n        \"sm_id\": 99,\n        \"date_created\": \"2021-11-26T06:22:19Z\",\n        \"oof_shard\": \"1\",\n        \"delivery\": {\n            \"ID\": 1,\n            \"OrderID\": 0,\n            \"Name\": \"Test Testov\",\n            \"Phone\": \"+9720000000\",\n            \"Zip\": \"2639809\",\n            \"City\": \"Kiryat Mozkin\",\n            \"Address\": \"Ploshad Mira 15\",\n            \"Region\": \"Kraiot\",\n            \"Email\": \"test@gmail.com\"\n        },\n        \"payment\": {\n            \"ID\": 1,\n            \"OrderID\": 0,\n            \"Transaction\": \"b563feb7b2b84b6test\",\n            \"RequestID\": \"\",\n            \"Currency\": \"USD\",\n            \"Provider\": \"wbpay\",\n            \"Amount\": 1817,\n            \"PaymentDT\": 0,\n            \"Bank\": \"alpha\",\n            \"DeliveryCost\": 0,\n            \"GoodsTotal\": 0,\n            \"CustomFee\": 0\n        },\n        \"items\": [\n            {\n                \"ID\": 1,\n                \"OrderID\": 1,\n                \"ChrtID\": 0,\n                \"TrackNumber\": \"\",\n                \"Price\": 453,\n                \"Rid\": \"ab4219087a764ae0btest\",\n                \"Name\": \"Mascaras\",\n                \"Sale\": 30,\n                \"Size\": \"0\",\n                \"TotalPrice\": 0,\n                \"NmID\": 0,\n                \"Brand\": \"Vivienne Sabo\",\n                \"Status\": 202\n            },\n            {\n                \"ID\": 2,\n                \"OrderID\": 1,\n                \"ChrtID\": 0,\n                \"TrackNumber\": \"\",\n                \"Price\": 453,\n                \"Rid\": \"ab4219087a764ae0btest\",\n                \"Name\": \"Mascaras\",\n                \"Sale\": 30,\n                \"Size\": \"0\",\n                \"TotalPrice\": 0,\n                \"NmID\": 0,\n                \"Brand\": \"Vivienne Sabo\",\n                \"Status\": 202\n            }\n        ]\n    }\n  ```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frxyalxrd%2Fgo_wbtech_lvl_0","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frxyalxrd%2Fgo_wbtech_lvl_0","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frxyalxrd%2Fgo_wbtech_lvl_0/lists"}