title: How to do [HttpGet] from ASP.NET core for arbitrary argument
body: <p>I learn Angular with APS.NET core and the CRUD principle</p>
  
  <p>I have this two methods like:</p>
  
  <pre><code>/// &lt;summary&gt;
  /// Retrieve all items from Books.
  /// &lt;/summary&gt;
  /// &lt;returns&gt;Books items List&lt;/returns&gt;
  // GET: api/BooksXml
  [HttpGet]
  public IActionResult GetBookItems()
  {
      List&lt;BookItem&gt; BookItems = new List&lt;BookItem&gt;();
      XDocument doc = _db.GetXmlDb();
      List&lt;BookItem&gt; bookitems = doc.Descendants("book").Select(x =&gt; new BookItem()
      {
          Id = (string)x.Attribute("id"),
          Author = (string)x.Element("author"),
          Title = (string)x.Element("title"),
          Genre = (string)x.Element("genre"),
          Price = (decimal)x.Element("price"),
          Publish_date = (DateTime)x.Element("publish_date"),
          Description = (string)x.Element("description")
      }).ToList();
      return Ok(bookitems);
  }
  
  /// &lt;summary&gt;
  /// Returns a Book item matching the given id.
  /// &lt;/summary&gt;
  /// &lt;param name="id"&gt;Id of item to be retrieved&lt;/param&gt;
  /// &lt;returns&gt;Book item&lt;/returns&gt;
  // GET: api/BooksXml/5
  [HttpGet("{id}")]
  public IActionResult GetBookItems(string id)
  {
      XDocument doc = _db.GetXmlDb();
      XElement result = doc.Descendants("book").FirstOrDefault(el =&gt; el.Attribute("id") != null &amp;&amp;
                   el.Attribute("id").Value == id);
      List&lt;BookItem&gt; BookItems = new List&lt;BookItem&gt;();
      if (result != null)
      {
          BookItem Book = new BookItem();
          Book.Id = (string)result.Attribute("id");
          Book.Author = (string)result.Element("author");
          Book.Title = (string)result.Element("title");
          Book.Genre = (string)result.Element("genre");
          Book.Price = (decimal)result.Element("price");
          Book.Publish_date = (DateTime)result.Element("publish_date");
          Book.Description = (string)result.Element("description");
          BookItems.Add(Book);
  
      }
      return Ok(BookItems);
  }
  </code></pre>
  
  <p>They are both get methods right, what I wanted more was to have another get with a route so I could search my backend books databas for the book title.</p>
  
  <p>like this: (BooksXmlController.cs)</p>
  
  <pre><code> /** GET all books from server. */
    getBookItems(): Observable&lt;BookItem[]&gt; {
      return this.http.get&lt;BookItem[]&gt;(this.BookItemsUrl);
    }
  
    /** GET book by id. */
    getBookItem(id: string): Observable&lt;BookItem[]&gt; {
      const url = `${this.BookItemsUrl}/${id}`;
      return this.http.get&lt;BookItem[]&gt;(url);
    }
  
    /** GET book by title from server. */
    getBookByTitle(title: string): Observable&lt;BookItem&gt; {
      const url = `${this.BookItemsUrl}/${title}`;
      return this.http.get&lt;BookItem&gt;(url);
    }
  </code></pre>
  
  <p>Notice the <code>getBookByTitle</code> , how do I map the "title" to the ASP.NET core backend [HttpGet] </p>