Ich arbeite an einer Spring Boot-Anwendung mit RESTful-Diensten, JWT-basierte Authentifizierung und reagieren als Front-End.Anzahl (eindeutige) Ansichten Spring Boot REST
Ich möchte einen Zähler einbauen, der die eindeutigen Benutzeranforderungen (z. B. pro Tag) an bestimmte REST-Endpunkte in meinem RestController überwacht und den aktuellen Wert in einer Spalte in der Datenbank speichert.
Ich würde gerne wissen, wie viele Benutzer auf einen bestimmten Artikel (api/articles/{id}
) pro Tag geklickt haben und diesen Wert an die Entität binden.
Entity:
@Data
@Builder
@AllArgsConstructor
@RequiredArgsConstructor
@Entity
@Table(name = "Article")
public class Article{
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "message_id", unique = true, nullable = false)
private Long id;
@Column(name = "visits")
private Long visitCounter;
...
}
Controller:
@RestController
@RequestMapping("/api/articles")
public class ArticleController {
private AppUserService userService;
private ArticleService articleService ;
@Autowired
public ArticleController (AppUserService userService, ArticleService articleService) {
this.userService = userService;
this.articleService = articleService;
}
@GetMapping(value = "/{id}")
public ResponseEntity<Article> getArticleById(@PathVariable(value = "id") Long articleId) {
Article article = articleService .getArticleById(articleId);
if(article == null) {
return ResponseEntity.notFound().build();
}
articleService.countVisit(); //???
return ResponseEntity.ok().body(article);
}
}
...
Irgendwelche Ideen, wie so etwas erreicht werden könnte?