Thiết kế API RESTful. Tôi có hai cách để xác định tài nguyên (dữ liệu người). Hoặc bằng ID duy nhất được tạo bởi cơ sở dữ liệu hoặc bằng số an sinh xã hội (SSN), được nhập cho từng người. SSN được cho là duy nhất, mặc dù có thể thay đổi.ID thông tin và được tạo duy nhất trong REST API
Sử dụng ID sẽ thuận tiện nhất cho tôi, vì nó được đảm bảo là duy nhất và không thay đổi. Do đó, URL cho tài nguyên, cũng luôn luôn giữ nguyên:
GET /persons/12
{
"name": Morgan
"ssn": "840212-3312"
}
Lý lẽ cho việc sử dụng SSN, là khách hàng API có nhiều thông tin và dễ hiểu hơn. SSN cũng được sử dụng nhiều trong các hệ thống xung quanh:
GET /persons/840212-3321
{
"name": Morgan
"id": "12"
}
Vì vậy, câu hỏi là: Tôi có nên đi với cách tiếp cận đầu tiên, và tránh được một số đau đầu thực hiện nơi SSN có thể thay đổi. Và có thể cung cấp một số phương thức trợ giúp chuyển đổi từ SSN thành ID?
Hoặc đi theo phương pháp thứ hai. Cung cấp API nhiều thông tin hơn. Mặc dù phải đối phó với một số khác biệt không yên tĩnh như vậy mà URL: s có thể thay đổi do thay đổi SSN?
Tôi đồng ý/tìm kiếm/không cần thiết trong url và việc rời khỏi nó là sạch hơn. Tôi thêm nó chỉ cho rõ ràng trong ví dụ của tôi vì nó không tốt cũng không xấu.Tôi nghĩ rằng số nhiều và số ít là một trong những điều tôn giáo dọc theo dòng của việc bạn nên đặt tên cho các bảng DB của bạn một hoặc số nhiều, nhưng nó chắc chắn chỉ là sở thích. – Ray
Hmmm ... Không có tình yêu cho cái nhìn sâu sắc của chúng tôi. Gonna +1 bạn vì có một bộ não. – Ray
@Ray Tôi đã tiếp quản một dự án còn tồn tại và các bảng cơ sở dữ liệu đã được đặt tên theo số nhiều. Khi tôi remodeled không gian URI từ (ví dụ) '/ viewopenjobs.php' để'/jobs? Status = open' Tôi chỉ cắt ngắn tên tập tin, vì vậy họ đã kết thúc số nhiều quá. –