More typical would be
GET /books - get a list of all books
POST /books - create a new book
- or -
PUT /books/Charles-Dickens-Great-Expectations - create a new book
GET /books/9780142423356 - get a specific book
- or -
GET /books/Charles-Dickens-Great-Expectations - get a specific book
POST is used when the unique identifier for the book is not known. PUT is preferred when the creator of the resource knows the unique identifier.
As far as concurrency management, the HTTP spec has headers that will help, such as etag
, if-match
, and if-none-match
.