#ruby-on-rails #ruby #api #e-commerce #marketplace
#рубин на рельсах #рубин #API #электронная коммерция #Магазин
Вопрос:
когда я делаю POST
запрос в Postman, я вижу, что JSON не отправляется ко мне и ничего не создали, но вернуть статус: 200
если я смотрю на журналы, я вижу, что этот запрос регистрируется как GET
, я не понимаю этого поведения, в другие приложения с той же конфигурацией этого не произойдет,я не знаю, если проблема приходит от nginx / apache
сервера или rails server
вот журнал plesk:
это мой запрос на проверку тела
{ "event_id": "fd193bc1-992f-4e51-bb28-b841417f68a9", "order_id": "61e2d090-0d53-451f-9031-413559d34732", "order_number": "10103211120218", "state": "fulfilled", "store_id": "11", "timestamp": "2021-06-03T12:06:02.576Z", "delivery_details": { "delivery_tracking_number": "003404342888680268172", "delivery_carrier_name": "DHL", "return_tracking_number": "35141263178", "return_carrier_name": "DHL" }, "customer_billing_address": { "first_name": "Max", "last_name": "Mustermann", "address_line_1": "Musterstraße 12 34", "zip_code": "12345", "city": "Berlin", "country_code": "DE" }, "items": [ { "item_id": "15c3aa83-3f73-4ad6-a326-e1a10a89dd52", "ean": "4059701022541", "price": 99.95, "currency": "EUR", "article_number": "31.832.34-6,5", "zalando_article_number": "GA111N0JN-J110065000", "article_location": "213" }, { "item_id": "101610aa-71b1-4f52-b3ab-4d6cbc4e8adb", "ean": "4059701214472", "price": 99.95, "currency": "EUR", "article_number": "33.731.54-7", "zalando_article_number": "GA111N0JE-J110007000", "article_location": "213" } ] }
конечной точкой является https://www.somedomain.com/api/v1/orders/zalando
и маршруты: zalando_api_v1_orders POST /api/v1/orders/zalando(.:format) api/v1/orders#zalando {:format=gt;:json}
namespace :api, defaults: {format: :json} do namespace :v1 do resources :orders, only: [:index, :show, :update, :options] do post 'zalando', on: :collection end end end
и это метод класса, с помощью которого я создаю заказы с тем, что он должен получить в ответе
def call if Order.where(order_code: [order_code_with_store,order_code]).any? success else order = Order.create(order_params) items = OrderItem.create(order_item_params(order.id)) if order.persisted? amp;amp; items.all? { | item| item.persisted? } UserMailer.marketplace_order_admin(order).deliver success else success end end rescue orderamp;.destroy success end
Комментарии:
1. @dbugger добавил маршруты, я надеюсь предоставить дополнительную информацию. Спасибо
2. Что именно показывает почтальон? Ни код, ни маршруты не помогут, так как проблема возникает до того, как ваш запрос попадет в приложение
3. @BroiSatse вообще ничего не показывает почтальону, только статус 200 зеленым цветом, но больше ничего, ни тела, ни предупреждений, ни ошибок, и когда я заглянул в журнал, я заметил запрос GET, похожий на тот, что на картинке
4. Вы уверены, что Почтальон отправляет запрос на почту. кажется маловероятным, если сервер получает его как GET? Также есть ли у вас
show
аналогичное заявление о спасении? Этоrescue
маскирует любую проблему, которая может возникнуть,call
потому что она спасает каждогоStandardError
, несмотря ни на что. (НЕ ДЕЛАЙ ЭТОГО)5. @cisco — Можете ли вы увидеть запрос в postamn?