具有hal响应的Spring引导始终定义结构

时间:2016-05-11 08:41:36

标签: java json rest spring-boot hal

我有一个Spring启动应用程序,它使用PagedResources和HAL返回一组资源。

这是一个常见回应的例子:

if (isset($_POST['update-project'])) {     
    $unit_type= mysqli_real_escape_string($connect, $_POST['res-unit-type']);
    $price= mysqli_real_escape_string($connect, $_POST['price']);
    $bedrooms= mysqli_real_escape_string($connect, $_POST['bedrooms']);
    $area= mysqli_real_escape_string($connect, $_POST['area']);
    $type= mysqli_real_escape_string($connect, $_POST['prop-for']);

    if (isset($is_featured)) {
        $is_featured=1;
    }

    $is_featured= mysqli_real_escape_string($connect, $_POST['is_featured']);

    if (getimagesize($_FILES['name']['tmp_name']) === FALSE) {  
        $q= mysqli_query($connect, "SELECT  image from commercial WHERE id=11"); 
        $res= mysqli_fetch_assoc($q);
        print_r($res);
        die;
    } else {
        $image=  addslashes($_FILES['name']['tmp_name']);
        $name=  addslashes($_FILES['name']['name']);
        $image=  file_get_contents($image);
        $image= base64_encode($image);
        saveimage($unit_type,$price ,$bedrooms,$area, $type,$image,$is_featured);
}

否则,如果要返回的集合为空(可能为空),则响应将为:

{
  "_embedded": {
    "mappings": [
      {
        "formId": "857353204373673",
        "formName": null,
        .....
      }
    ]
  },
  "_links": {.....},
  "page": {.....}
}

我希望有一个响应总是返回一个JSON,其中包含_embedded节点及其所有字段(显然为空),如:

{
  "_links": {.....},
  "page": {.....}
}

我的选择是始终让客户看到我的JSON的整个结构(也许这不是最好的做法?)。

以下是代码段:

{
  "_embedded": {
    "mappings": []
  },
  "_links": {.....},
  "page": {.....}
}

任何建议表示赞赏!

提前致谢, 安德烈。

0 个答案:

没有答案