2017-06-09 1 views
0

den Code zuerst sehen, und es ist aus diesem Bereich genommen https://www.codeproject.com/Articles/1005485/RESTful-Day-sharp-Security-in-Web-APIs-Basic#_Toc423441907WebAPI: Was ist der Vorteil der Verwendung von Route Attribut keyword

[GET("productid/{id?}")] 
[GET("particularproduct/{id?}")] 
[GET("myproduct/{id:range(1, 3)}")] 
public HttpResponseMessage Get(int id) 
{} 

[DELETE("remove/productid/{id}")] 
[DELETE("clear/productid/{id}")] 
[PUT("delete/productid/{id}")] 
public bool Delete(int id) 
{ 
if (id > 0) 
    return _productServices.DeleteProduct(id); 
return false; 
} 

der Artikel zeigen wir http sehr verwenden können Route zu erstellen. Wenn es richtig ist, warum sollte man Route [] Attribut-Schlüsselwort verwenden, um Route für Aktion oder Attribut-Routing zu definieren?

Was ist der Vorteil der Verwendung von Route [] Attribut Schlüsselwort statt Route definieren mit http Verb?

Bitte führen Sie mich. Danke

Antwort

1

HTTP-Verb selbst funktioniert als Route in Web-API, aber wenn das nicht genug ist und Sie wollen Ihre eigene Route für Ihre Ressource Route [] -Attribut wird verwendet. Siehe diese Frage URL in SO. Wenn HTTP-Verb verwendet wurde diese Frage URL abzurufen wäre wie https://stackoverflow.com/questions/get/44454705

aber stattdessen verwendet SO Strecke Attribut machen URL deutlicher von in url bekommen entfernen und vorbei Frage Header in url

Update: Taking folgenden Web api Controller

public class QuestionController: ApiController 
{ 
    public string Get(int id) 
    { 
    return ""; 
    } 

    [Route("questions/{id}/{question}")] 
    public string GetRoutedQuestion(int id) 
    { 
    return ""; 
    } 
} 

So in über Web-api-Controller aufrufen Methode Holen Sie sich Ihre uRL wird wie sein

yourdomain/api/question/get/1 

Hier wird eine api after domain hinzugefügt, weil die Standardroutenregel der web api route config Datei lautet.

Aber zu nennen GetRoutedQuestion Ihre url

sein
yourdomain/question/1/question-text 

wenn Sie wie frühere URL mit HTTP-Verben halten können, aber wenn Sie Ihre URL anpassen möchten Sie benutzerdefinierte verwenden müssen Routing entweder, dass in Attribut Route sein oder in der Routenkonfigurationsdatei.

+0

Sie sagten 'used Route Attribut, um die URL klarer zu machen, indem Sie get in url und übergeben Frage Header in url'. kannst du bitte mit einem Beispielbeispiel kommen, das mir zeigen kann, was wir mit Route tun können, was wir nicht können. Warte auf deine Antwort im Detail. Danke –

+0

Dieser Link ist kaputt Sie haben https://StackOverflow.com/questions/get/44454705 zur Verfügung gestellt –

Verwandte Themen