title: REST API: Should we use PUT or DELETE to update resource partially?
body: <p>We have website like pluralsight where authors and customers register. Authors publish their courses and customers can give rating to these courses. The table structure looks like:</p>
  
  <p><strong>author table:</strong> (save basic information of author: one to one) </p>
  
  <p>authorId |   name |   contact |     email   |    rating </p>
  
  <p>1  | sahil | 9971343992 | shaf@gmail.com | 3.2 </p>
  
  <p><strong>authorRating:</strong> (save ratings given to author from customers: one to many)</p>
  
  <p>Id  |  authorId  | customerId | rating  |</p>
  
  <p>1  |  1   |   101      |   2.7</p>
  
  <p>2 | 1 | 201 | 3.7</p>
  
  <p>The rating in the author table gets updated when some record gets inserted/updated/deleted in authorRating table. There's some complex algorithm which finalize rating in author table based on authorRating table records.</p>
  
  <p>We have created following APIs for that:</p>
  
  <p>PUT api/author/1/rating /: If there's any change in authorRating table, we recompute the rating of that author and trigger this API to pass new rating. This accepts rating and add/update that in author table. If author table doesn't have id=1, it gives back validation error</p>
  
  <p>DELETE api/author/1/rating /: This removes the rating for author id=1 i.e. set it to NULL. If author table doesn't have id=1, it gives back validation error.</p>
  
  <p><strong>Is this the right API design? OR should we only have PUT API exposed and if they send rating as null in the PUT API, we will set it null in the author table ?</strong></p>
  
  <p>OR should we consider using PATCH here?</p>