假設如下:使用REST API響應不良用戶輸入的建議方式是什麼?
- 我休息API將返回我的水果名稱,只有5個果實。
- 要得到水果名稱,我必須要求一個ID。
考慮下面的代碼:
public class Fruit {
public int FruitID { get; set; }
public string FruitName { get; set; }
public Fruit(string json){
JObject o = JObject.Parse(json);
FruitID = Int32.Parse((string) o["id"]);
FruitName = (string) o["name");
}
}
public static Fruit getFruit(int id){
Task<Fruit> task = "http://fruit.com/get_fruit"
.SetQueryParams(new { fruit_id = id })
.GetStringAsync();
return new Fruit(task.Result);
}
(如發現任何錯在這一點請大家指正,我是新來的C#任務)
比方說,當任務返回時,JSON可能看起來像以下,如果它收到一個有效的ID ...
{
"status":1,
"id": 3,
"name": "apple"
}
或者這是否收到無效ID。
{
"status":0
}
如果假設用戶輸入中搜索其ID,然後有一個機會,他們可以輸入一個不存在的ID,因爲只有5,(0到4)。根據我上面輸入的代碼,如果返回"status":0
,我可以看到應用程序崩潰,因爲它沒有類構造函數正在查找的兩個字段。
我的問題是:處理可能的無效輸入(例如用戶輸入20的ID)的最佳方法是什麼?
我看到你來自哪裏,除了我使用的API不返回404的。它返回一個''狀態':0'。我可以與API經理談談。 – Hidden14
這個想法雖然相似,但你應該在實體之前處理狀態。在這個例子中,檢查狀態是否爲「1」,然後解析Fruit,否則處理錯誤狀態(0) –