【问题标题】:How To Persist Data via API JSON SYMFONY 3如何通过 API JSON SYMFONY 3 持久化数据
【发布时间】:2017-01-06 19:10:15
【问题描述】:

好的,所以我有一个名为:Commande 的实体。带有属性: 滴度, 导演 类别 , 编辑, 大奖赛。

我想在 symfony 3 中创建一个 API REST json,它允许任何设备(例如 Android)在这个实体中保存数据。

例如,在我的 RestController 中,此代码允许我从另一个实体恢复数据:Livres

<?php

namespace BiblioBundle\Controller;

use FOS\RestBundle\Controller\Annotations\View;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Symfony\Component\Security\Core\Exception\AccessDeniedException;

class BiblioRestController extends Controller
{
public function getListeAction(){
$Livres = $this->getDoctrine()->getRepository('BiblioBundle:Livres')->findAll();
if(!$Livres){
  throw $this->createNotFoundException();
}
return $Livres;
}
}

API地址是:http://127.0.0.1:8000/api/liste.json

怎么做? 谢谢。

Commande.php:

<?php

namespace BiblioBundle\Entity;
use Doctrine\ORM\Mapping as ORM;
use JMS\Serializer\Annotation\ExclusionPolicy;
use JMS\Serializer\Annotation\Expose;
use JMS\Serializer\Annotation\Groups;
use JMS\Serializer\Annotation\VirtualProperty;
use JMS\Serializer\Annotation\Type;

/**
* Commande
* @ORM\Table(name="commande")
* @ORM\Entity(repositoryClass="BiblioBundle\Repository\CommandeRepository")
* 
* @ExclusionPolicy("all")
*/
class Commande
{
/**
 * @var int
 * @ORM\Column(name="Id", type="integer")
 */
private $id;

/**
 * @var string
 * @ORM\Column(name="Titre", type="string", length=80)
 * @Expose
 */
private $titre;

/**
 * @var string
 * @ORM\Column(name="Auteur", type="string", length=50)
 * @Expose
 */
private $auteur;

/**
 * @var string
 * @ORM\Column(name="Categorie", type="string", length=60)
 * @Expose
 */
private $categorie;

/**
 * @var string
 * @ORM\Column(name="Editeur", type="string", length=70)
 * @Expose
 */
private $editeur;

/**
 * @var string
 * @ORM\Column(name="Prix", type="string", length=30)
 * @Expose
 */
private $prix;


/**
 * Get id
 *
 * @return int
 */
public function getId()
{
    return $this->id;
}

/**
 * Set titre
 *
 * @param string $titre
 *
 * @return Commande
 */
public function setTitre($titre)
{
    $this->titre = $titre;

    return $this;
}

/**
 * Get titre
 *
 * @return string
 */
public function getTitre()
{
    return $this->titre;
}

/**
 * Set auteur
 *
 * @param string $auteur
 *
 * @return Commande
 */
public function setAuteur($auteur)
{
    $this->auteur = $auteur;

    return $this;
}

/**
 * Get auteur
 *
 * @return string
 */
public function getAuteur()
{
    return $this->auteur;
}

/**
 * Set categorie
 *
 * @param string $categorie
 *
 * @return Commande
 */
public function setCategorie($categorie)
{
    $this->categorie = $categorie;

    return $this;
}

/**
 * Get categorie
 *
 * @return string
 */
public function getCategorie()
{
    return $this->categorie;
}

/**
 * Set editeur
 *
 * @param string $editeur
 *
 * @return Commande
 */
public function setEditeur($editeur)
{
    $this->editeur = $editeur;

    return $this;
}

/**
 * Get editeur
 *
 * @return string
 */
public function getEditeur()
{
    return $this->editeur;
}

/**
 * Set prix
 *
 * @param string $prix
 *
 * @return Commande
 */
public function setPrix($prix)
{
    $this->prix = $prix;

    return $this;
}

/**
 * Get prix
 *
 * @return string
 */
public function getPrix()
{
    return $this->prix;
}
}

【问题讨论】:

  • 您只是在寻找建议吗?你试过什么?这个问题的答案可能是相当多的代码......
  • 我只想知道在我的 restController 中创建允许外部设备或程序(Android、Postman)持久化数据的 API REST 的语法是什么。只是 。不是完整的代码
  • 你看过FOSRestBundle了吗?
  • 是的,谢谢我找到了解决方案

标签: android json rest api symfony


【解决方案1】:

一切都在docs

所以你正在寻找的是类似的东西

$commande = new Commande();
$commande->setAuthor('john doe');
//... use the rest of your setters as needed
$em = $this->getDoctrine()->getManager();
$em->persist($commande);
$em->flush();
return new Response('Saved new commande with id '.$commande->getId());

【讨论】:

  • Thx 但我知道这是我们使用 symfony 3 将数据保存在对象中的方式。但我想通过 API Rest 格式 json 坚持,例如使用方法 post 。
  • 我的错,对不起,我找到了解决办法,谢谢你的帮助
猜你喜欢
  • 1970-01-01
  • 2014-05-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-12-31
  • 1970-01-01
  • 2016-09-26
  • 1970-01-01
相关资源
最近更新 更多