Skip to content

Latest commit

 

History

History
111 lines (108 loc) · 2.99 KB

README.md

File metadata and controls

111 lines (108 loc) · 2.99 KB

poc-springHalRelations

Simplest maven spring boot project to showcase one problem. This repo is a part of stackoverflow question.

After app startup from PoCBackendMain class (or using mvn spring-boot:run command), you can visit http://localhost:8080/api in your browser to see hal browser, or you can cURL all publisher resources/entities loaded in LoadDatabase class:

curl http://localhost:8080/api/publishers

With result like this:

{
  "_embedded" : {
    "publishers" : [ {
      "name" : "Publisher A",
      "bookPublishers" : [ {
        "publishedDate" : "2019-07-12T10:53:15.227+0000",
        "_links" : {
          "book" : {
            "href" : "http://localhost:8080/api/books/2"
          },
          "publisher" : {
            "href" : "http://localhost:8080/api/publishers/1"
          }
        }
      }, {
        "publishedDate" : "2019-07-12T10:53:15.197+0000",
        "_links" : {
          "book" : {
            "href" : "http://localhost:8080/api/books/1"
          },
          "publisher" : {
            "href" : "http://localhost:8080/api/publishers/1"
          }
        }
      } ],
      "_links" : {
        "self" : {
          "href" : "http://localhost:8080/api/publishers/1"
        },
        "publisher" : {
          "href" : "http://localhost:8080/api/publishers/1"
        },
        "createdBy" : {
          "href" : "http://localhost:8080/api/publishers/1/contact"
        },
        "friends" : {
          "href" : "http://localhost:8080/api/publishers/1/friends"
        }
      }
    } ]
  },
  "_links" : {
    "self" : {
      "href" : "http://localhost:8080/api/publishers{?page,size,sort}",
      "templated" : true
    },
    "profile" : {
      "href" : "http://localhost:8080/api/profile/publishers"
    }
  },
  "page" : {
    "size" : 20,
    "totalElements" : 1,
    "totalPages" : 1,
    "number" : 0
  }
}%

This is solution branch according AlanHay. Given cURL command now returns this:

{
  "_embedded" : {
    "publishers" : [ {
      "name" : "Publisher A",
      "_links" : {
        "self" : {
          "href" : "http://localhost:8080/api/publishers/1"
        },
        "publisher" : {
          "href" : "http://localhost:8080/api/publishers/1"
        },
        "friends" : {
          "href" : "http://localhost:8080/api/publishers/1/friends"
        },
        "createdBy" : {
          "href" : "http://localhost:8080/api/publishers/1/contact"
        },
        "bookPublishers" : {
          "href" : "http://localhost:8080/api/publishers/1/bookPublishers"
        }
      }
    } ]
  },
  "_links" : {
    "self" : {
      "href" : "http://localhost:8080/api/publishers{?page,size,sort}",
      "templated" : true
    },
    "profile" : {
      "href" : "http://localhost:8080/api/profile/publishers"
    }
  },
  "page" : {
    "size" : 20,
    "totalElements" : 1,
    "totalPages" : 1,
    "number" : 0
  }
}%