Отправить массив в API через почтальона? - PullRequest
0 голосов
/ 08 января 2020

Новичок в API

У меня есть таблица post_tag, которая posts таблица имеет отношение (много ко многим) с tags таблицей.

моя код контроллера (все хорошо):

  $post = Post::create($data);

  $post->tag()->attach($request->tags);

  return $this->apiRespone($post , 'Added Post Successfuly', null ,200);

Мой вопрос здесь: теперь я отправляю массив таких тегов! Это лучший или правильный способ отправки массива (значит, когда я дам это api url разработчику мобильных приложений, он будет знать, что делать с этим api url?

My way is correct or not ?

enter image description here

1 Ответ

1 голос
/ 08 января 2020

Хотя ваше решение работает, лучший подход, так как вы создаете конечную точку, было бы лучше переключить ваш ввод, чтобы принять формат JSON вместо использования form-data. Сделайте так, чтобы ваша конечная точка API принимала следующую полезную нагрузку:

{
  "title": "First Post",
  "desc": "Desc of Post",
  "image": "image3.jpg",
  "category_id": 1,
  "tags": [
    "one",
    "two",
    "three"
  ]
}

В Laravel вы просто получаете tags (или любые другие свойства) со следующим:

$tags = $request->input('tags');

Для изображения вы можете разрешить его получение в кодированном base64 изображении. Изображение будет выглядеть как цепочка строк, которые должны быть преобразованы клиентом (ios или android), например:

{
 image:"/9j/4AAQSkZJRgABAQAAAQABAAD/7QB8UGhvdG9zaG9wIDMuMAA4QklNBAQAAAAAAF8cAigAWkZCTUQyMzAwMDk2OTAxMDAwMDgxNTIwMDAwNWY2MDAwMDA3NDZmMDAwMDE2YmEwMDAwNDAxYjAxMDBmMTM0MDEwMGY4YzIwMTAwZDkxNDAyMDA1ZDRhMDIwMAD/2wBDAAcHBwcHBwwHBwwRDAwMERcRERERFx4XFxcXFx4kHh4eHh4eJCQkJCQkJCQrKysrKysyMjIyMjg4O"
}

Затем в PHP, если вы хотите сохранить изображение на диске, просто используйте base64_decode. См. пример здесь .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...