2009-03-30 32 views
7

Hiện tại có nhiệm vụ thiết kế một dịch vụ web (tôi sẽ chuyển sang wcf nhưng vẫn áp dụng nguyên tắc) trong C#. Vấn đề là không có quá tải của các phương pháp mà tôi nhận thức được vì vậy tôi cần phải đặt tên cho các phương thức web với các tên khác nhau.Quy ước đặt tên với dịch vụ web/WCF và không bị quá tải

Tôi thực sự muốn một số đầu vào về quy ước đặt tên, dường như không có bất kỳ thứ gì ngoài đó - ví dụ.

Phương thức chính của tôi là GetMortgages() - trả về tất cả các khoản thế chấp. Tôi cần một số khác nơi nó sẽ trả lại các khoản thế chấp trong một phạm vi giá nhất định, vậy bạn sẽ đề nghị điều gì cho GetMorgagesPriceRange, InPriceRange, WithPriceRange này.

tôi chút nhầm lẫn về thực tiễn tốt nhất fro đặt tên phương pháp web, tôi rất thích chỉ quá tải GetMortgages nhưng tất nhiên với các dịch vụ web tôi không thể ...

Vì vậy, nó sẽ là tốt hơn để làm GetNounDesciption ??

Bất cứ ai biết về bất kỳ webservices tốt lên đó, có một phương pháp mà là như nhau nhưng mỗi phương pháp đều có thông số khác nhau thông qua - thực sự muốn biết về bất cứ điều gì ở đây

Nếu nó được thực hành để bắt đầu WebMethod của tôi với GET nếu nó là cái gì đó trả về một cái gì đó ??

Còn điều gì đó tiết kiệm và gửi nội dung gì đó thì có chuẩn ở đây không ?? tức là PUT hoặc SAVE ???

Phải có một số loại quy tắc để theo dõi ??

Thật muốn một số đầu vào là bất cứ ai có bất kỳ

Cảm ơn bạn Đánh dấu

+0

tôi giả sử tôi cần cung cấp 5 phương pháp mà tôi cần chuyển các thông số khác nhau nhưng tất cả đều trả về dữ liệu được định dạng giống nhau nhưng tùy thuộc vào các thông số được chuyển đến đó là cách tốt nhất để giải quyết điều này? –

+0

Tôi sẽ đề nghị GetAllMortgages() và GetMortgagesByPriceRange() để mô tả những gì bạn đang quay trở lại từ dịch vụ của bạn và đưa ra một gợi ý về các tham số dự kiến ​​được thông qua. – ManoDestra

Trả lời

5

Có thực sự không phải là bất cứ "quy tắc cuốn sách" để đặt tên công ước. Bạn tìm thấy một trong đó làm việc cho bạn.

Việc áp dụng phổ biến nhất với .Net là tuân theo quy ước đặt tên Microsoft .Net và với Dịch vụ Web, chỉ coi chúng là phần mở rộng của hội đồng của bạn chứ không phải là trường hợp đặc biệt.

http://msdn.microsoft.com/en-us/library/ms229045.aspx

Vì vậy, GetMortgages(), GetMortgagesInPriceRange (startPrice, endPrice), vv ... là tốt.

Theo như "tiết kiệm", nhiều người sẽ sử dụng "SubmitNoun".

0

Tôi nghĩ bạn đang làm tốt. Mô tả chúng dựa trên những gì họ đang làm. GetAllMortgages(), GetMortgagesInPriceRange(), v.v.

Cân nhắc đến bất kỳ thuật ngữ tên miền cụ thể nào. Ví dụ: nếu cụm từ thế chấp trong ngành cho một phạm vi giá của một khoản thế chấp là "Nhân khẩu học", thì GetMortgagesForDemographic sẽ là tên tốt hơn, ngay cả khi bạn biết rằng các tính năng "nhân khẩu học" duy nhất là phạm vi giá.

0

Bạn có thể đi với kho-pattern nếu bạn có dịch vụ kho-tương tự (như tôi giả định bằng các ví dụ của bạn, bạn có) ước

GetXByY(params) 
+0

nếu chúng tôi có 10 tham số, nó sẽ giống như GetXByYByZByWByWByS ...... phải không? Đúng không? –

4

Ngoài ra, có lẽ bạn nên tránh quá tải phương pháp dịch vụ web. Sử dụng tên phương thức riêng biệt.

+4

+1 cho biết một lỗ hổng phổ biến cho người mới trong việc tạo webservice –

+0

Đây là một bình luận nhiều hơn, mặc dù nó được bình chọn. – theMayer

3

Bạn cũng có thể sử dụng phương thức dịch vụ GetMortgages() thay vì tham số và thiết kế tiêu chí lọc tùy chọn trong tài liệu. Bằng cách đó bạn chỉ có một phương pháp xử lý tất cả 'quá tải'.

<GetMortgages> 
    <filter> .... </filter> 
    <sort> .... </sort> 
    <group> .... </group> 
</GetMortgages> 
+0

Chắc chắn tốt hơn nhiều lần quá tải; nó cũng cho phép bạn tăng số lượng tham số trên 'tài liệu' mà không phải tạo thêm quá tải. –

Các vấn đề liên quan