[英]REST API Design with unidirectional relationships
我正在嘗試構建REST API,並且對於如何表示多對1單向關系感到有些困惑。
我有4個組件,分別代表汽車的4個部分(引擎,變速箱,車輪,車身)。
現在很明顯,零部件實體不需要汽車實體,只有汽車在乎零部件。
我想知道的是處理汽車資源的REST輸入的最佳方法。
1)我是否需要將完整完成的模型提交給服務(例如,包括具有完整傳輸實體的傳輸)?
2)調整輸入的數據以僅接受所需實體的ID(例如engine_id,transmission_id)?
我對此有些困惑,並且在四處搜尋之后無法真正找到一個很好的例子。
public class Engine
{
private Integer id;
// Engine specific stuff
}
public class Transmission
{
private Integer id;
// Transmission specific stuff
}
public class Wheels
{
private Integer id;
// Wheels specific stuff
}
public class Body
{
private Integer id;
// Body specific stuff
}
public class Car
{
@Id
private Integer id;
@ManyToOne
@JoinColumn(name="engine_id")
private Engine engine;
@ManyToOne
@JoinColumn(name="transmission_id")
private Transmission transmission;
@ManyToOne
@JoinColumn(name="wheels_id")
private Wheels wheels;
@ManyToOne
@JoinColumn(name="body_id")
private Body body;
}
1)不會。汽車顯然屬於您的問題領域,您應該這樣對待它們並加以識別。 您還應該具有允許檢索具有某些engine_id的所有汽車的功能,依此類推。 根據您陳述問題的方式,如果所有4個ID都定義了一輛汽車,則模棱兩可。
2)如果我正確理解您的問題,是的,id是REST設計的關鍵部分。 這並不意味着您無法顯示下級對象甚至搜索的功能。
首先讓用戶構造有效的變速箱,發動機,車身和車輪。 然后要求他們在構造Car時將ID或URL傳遞給這些資源。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.