通过邮递员将数组发送到api?

时间:2020-01-08 19:36:22

标签: laravel api

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 个答案:

答案 0 :(得分:1)

尽管您的解决方案可行,但是由于您正在构建端点,因此是一种更好的方法,最好将输入切换为接受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编码图像接收。图像看起来像一串字符串,应由客户端(iosandroid)进行转换,例如:

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

然后在PHP中,如果要将图像保存在磁盘上,只需使用base64_decode。参见example here