restore GET
parent
0ef130cb3b
commit
97c69cfaa8
186
.obsidian/workspace.json
vendored
186
.obsidian/workspace.json
vendored
@ -1,186 +0,0 @@
|
|||||||
{
|
|
||||||
"main": {
|
|
||||||
"id": "bfa6b0eb76264f17",
|
|
||||||
"type": "split",
|
|
||||||
"children": [
|
|
||||||
{
|
|
||||||
"id": "91a95d9b9ba4dc49",
|
|
||||||
"type": "tabs",
|
|
||||||
"children": [
|
|
||||||
{
|
|
||||||
"id": "a3660fdf5f5aceb3",
|
|
||||||
"type": "leaf",
|
|
||||||
"state": {
|
|
||||||
"type": "markdown",
|
|
||||||
"state": {
|
|
||||||
"file": "Home.md",
|
|
||||||
"mode": "source",
|
|
||||||
"source": false
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": "ca75671fa123bc88",
|
|
||||||
"type": "leaf",
|
|
||||||
"state": {
|
|
||||||
"type": "markdown",
|
|
||||||
"state": {
|
|
||||||
"file": "Home.md",
|
|
||||||
"mode": "source",
|
|
||||||
"source": false
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"currentTab": 1
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"direction": "vertical"
|
|
||||||
},
|
|
||||||
"left": {
|
|
||||||
"id": "5eaa206d99edb028",
|
|
||||||
"type": "split",
|
|
||||||
"children": [
|
|
||||||
{
|
|
||||||
"id": "d007c720b5e598a0",
|
|
||||||
"type": "tabs",
|
|
||||||
"children": [
|
|
||||||
{
|
|
||||||
"id": "03171174265e0ee5",
|
|
||||||
"type": "leaf",
|
|
||||||
"state": {
|
|
||||||
"type": "file-explorer",
|
|
||||||
"state": {
|
|
||||||
"sortOrder": "alphabetical"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": "f78dd3c57a1694ca",
|
|
||||||
"type": "leaf",
|
|
||||||
"state": {
|
|
||||||
"type": "search",
|
|
||||||
"state": {
|
|
||||||
"query": "",
|
|
||||||
"matchingCase": false,
|
|
||||||
"explainSearch": false,
|
|
||||||
"collapseAll": false,
|
|
||||||
"extraContext": false,
|
|
||||||
"sortOrder": "alphabetical"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": "ef97ee1190cc8880",
|
|
||||||
"type": "leaf",
|
|
||||||
"state": {
|
|
||||||
"type": "bookmarks",
|
|
||||||
"state": {}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"direction": "horizontal",
|
|
||||||
"width": 249.5
|
|
||||||
},
|
|
||||||
"right": {
|
|
||||||
"id": "3bd78c465d2a2030",
|
|
||||||
"type": "split",
|
|
||||||
"children": [
|
|
||||||
{
|
|
||||||
"id": "e39fc11f28834b41",
|
|
||||||
"type": "tabs",
|
|
||||||
"children": [
|
|
||||||
{
|
|
||||||
"id": "e0d70c2f91ae0cfb",
|
|
||||||
"type": "leaf",
|
|
||||||
"state": {
|
|
||||||
"type": "backlink",
|
|
||||||
"state": {
|
|
||||||
"file": "Home.md",
|
|
||||||
"collapseAll": false,
|
|
||||||
"extraContext": false,
|
|
||||||
"sortOrder": "alphabetical",
|
|
||||||
"showSearch": false,
|
|
||||||
"searchQuery": "",
|
|
||||||
"backlinkCollapsed": false,
|
|
||||||
"unlinkedCollapsed": true
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": "11cce84d7b97ddc8",
|
|
||||||
"type": "leaf",
|
|
||||||
"state": {
|
|
||||||
"type": "outgoing-link",
|
|
||||||
"state": {
|
|
||||||
"file": "Home.md",
|
|
||||||
"linksCollapsed": false,
|
|
||||||
"unlinkedCollapsed": true
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": "f8f2ce3f2694f545",
|
|
||||||
"type": "leaf",
|
|
||||||
"state": {
|
|
||||||
"type": "tag",
|
|
||||||
"state": {
|
|
||||||
"sortOrder": "frequency",
|
|
||||||
"useHierarchy": true
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": "58d34025bb119389",
|
|
||||||
"type": "leaf",
|
|
||||||
"state": {
|
|
||||||
"type": "outline",
|
|
||||||
"state": {
|
|
||||||
"file": "Home.md"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"currentTab": 3
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"direction": "horizontal",
|
|
||||||
"width": 300
|
|
||||||
},
|
|
||||||
"left-ribbon": {
|
|
||||||
"hiddenItems": {
|
|
||||||
"switcher:Open quick switcher": false,
|
|
||||||
"graph:Open graph view": false,
|
|
||||||
"canvas:Create new canvas": false,
|
|
||||||
"daily-notes:Open today's daily note": false,
|
|
||||||
"templates:Insert template": false,
|
|
||||||
"command-palette:Open command palette": false
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"active": "ca75671fa123bc88",
|
|
||||||
"lastOpenFiles": [
|
|
||||||
"Pagination.md",
|
|
||||||
"Home.md",
|
|
||||||
"Database.md",
|
|
||||||
"Post.md",
|
|
||||||
"GET.md",
|
|
||||||
"Get.md",
|
|
||||||
"assets/Pasted image 20230721100304.png",
|
|
||||||
"IntegrationTests.md",
|
|
||||||
"UnitTests.md",
|
|
||||||
"assets/Pasted image 20230719152007.png",
|
|
||||||
"Pasted image 20230719102301.png",
|
|
||||||
"assets/Pasted image 20230719102322.png",
|
|
||||||
"assets",
|
|
||||||
"Pasted image 20230718185450.png",
|
|
||||||
"testPage.md",
|
|
||||||
"subfolder/Note1.md",
|
|
||||||
"_Sidebar.md",
|
|
||||||
"tests%252FSubpage.md.-.md",
|
|
||||||
"subfolder.md",
|
|
||||||
"subfolder%5C%2Fp2.md",
|
|
||||||
"subfolder"
|
|
||||||
]
|
|
||||||
}
|
|
53
Get.md
Normal file
53
Get.md
Normal file
@ -0,0 +1,53 @@
|
|||||||
|
`src/main/java/djmil/cashcard/CashCardController.java`
|
||||||
|
|
||||||
|
```java
|
||||||
|
package example.cashcard;
|
||||||
|
|
||||||
|
import org.springframework.http.ResponseEntity;
|
||||||
|
import org.springframework.web.bind.annotation.GetMapping;
|
||||||
|
import org.springframework.web.bind.annotation.PathVariable;
|
||||||
|
import org.springframework.web.bind.annotation.RequestMapping;
|
||||||
|
import org.springframework.web.bind.annotation.RestController;
|
||||||
|
|
||||||
|
@RestController
|
||||||
|
public class CashCardController {
|
||||||
|
@GetMapping("/cashcards/{requestedId}")
|
||||||
|
public ResponseEntity<CashCard> findById(@PathVariable Long requestedId) {
|
||||||
|
if (requestedId.equals(99L)) {
|
||||||
|
CashCard cashCard = new CashCard(99L, 123.45);
|
||||||
|
return ResponseEntity.ok(cashCard);
|
||||||
|
} else {
|
||||||
|
return ResponseEntity.notFound().build();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
# @GetMapping
|
||||||
|
|
||||||
|
Needs the URI Path and tells Spring to route `GET` requests strictly to the `findById` method.
|
||||||
|
|
||||||
|
## Alternative variant for providing URI mapping for `@RestConttroller`
|
||||||
|
|
||||||
|
```java
|
||||||
|
@RestController
|
||||||
|
@RequestMapping("/cashcards")
|
||||||
|
public class CashCardController {
|
||||||
|
|
||||||
|
@GetMapping("/{requestedId}")
|
||||||
|
public ResponseEntity<String> findById() {
|
||||||
|
```
|
||||||
|
|
||||||
|
# @PathVariable
|
||||||
|
|
||||||
|
Spring needs to know how to get the value of the `requestedId` parameter. This is done using the `@PathVariable` annotation. The fact that the parameter name matches the `{requestedId}` text *(URI Path)* within the `@GetMapping` parameter allows Spring to assign (inject) the correct value to the `requestedId` variable.
|
||||||
|
|
||||||
|
# ResponseEntity
|
||||||
|
|
||||||
|
REST says that the Response needs to contain a Cash Card in its body, and a Response code of 200 (OK). Spring Web provides the `ResponseEntity` class for this purpose. It also provides several utility methods to produce Response Entities. Here `ResponseEntity` used to create a Response with code **200 (OK)**, and a body containing a `CashCard`.
|
||||||
|
|
||||||
|
# Testing
|
||||||
|
|
||||||
|
Testing `GET` and other REST request is considerate to be [[IntegrationTests]].
|
||||||
|
|
||||||
|
Also, after running the application, you can use browser (or any other web-testing tool) by visiting http://localhost:8080/cashcards/99
|
Loading…
Reference in New Issue
Block a user