|
19 | 19 |
|
20 | 20 | <h3>Timeout & Transaction Isolation</h3> |
21 | 21 | <ul style="list-style-type:disc;"> |
22 | | - <li><strong>Multi‑Slip Limit</strong>: Maximum <strong>500</strong> slips per match.</li> |
23 | | - <li><strong>Odds Isolation</strong>: The odds taken at bet initiation are preserved until transaction completes.</li> |
24 | | - <li><strong>Timeout Management</strong>: Each bet slip operation must complete within <strong>10 seconds</strong> (modifiable via configuration).</li> |
| 22 | + <li> |
| 23 | + <strong>Multi‑Slip Limit</strong>: Maximum <strong>500</strong> slips per match. |
| 24 | + </li> |
| 25 | + <li> |
| 26 | + <strong>Odds Isolation</strong>: The odds taken at bet initiation are preserved until transaction completes. |
| 27 | + </li> |
| 28 | + <li> |
| 29 | + <strong>Timeout Management</strong>: Each bet slip operation must complete within <strong>10 seconds</strong> (modifiable via configuration). |
| 30 | + </li> |
25 | 31 | </ul> |
26 | 32 |
|
27 | 33 | <h3>API Development & Security</h3> |
28 | 34 | <ul style="list-style-type:disc;"> |
29 | | - <li><strong>RESTful Principles</strong>: All endpoints follow standard HTTP methods and status codes.</li> |
30 | | - <li><strong>Testing</strong>: Unit and integration tests cover all service and controller logic.</li> |
31 | | - <li><strong>Security</strong>: Simple mock via <code>X-Customer-Id</code> header for identifying requesters.</li> |
32 | | - <li><strong>Investment Limit</strong>: Maximum stake per slip is <strong>10000 TL</strong>, total allowed = <code>limit × multipleSlipCount</code>.</li> |
| 35 | + <li> |
| 36 | + <strong>RESTful Principles</strong>: All endpoints follow standard HTTP methods and status codes. |
| 37 | + </li> |
| 38 | + <li> |
| 39 | + <strong>Testing</strong>: Unit and integration tests cover all service and controller logic. |
| 40 | + </li> |
| 41 | + <li> |
| 42 | + <strong>Security</strong>: Simple mock via <code>X-Customer-Id</code> header for identifying requesters. |
| 43 | + </li> |
| 44 | + <li> |
| 45 | + <strong>Investment Limit</strong>: Maximum stake per slip is <strong>10000 TL</strong>, total allowed = <code>limit × multipleSlipCount</code>. |
| 46 | + </li> |
| 47 | +</ul> |
| 48 | + |
| 49 | +<h3>AOP Logging (LoggerAspectJ)</h3> |
| 50 | +<ul style="list-style-type:disc;"> |
| 51 | + <li>Pointcut targets all classes annotated with <code>@RestController</code>. </li> |
| 52 | + <li> |
| 53 | + <code>@AfterReturning</code> advice logs successful responses (endpoint, method, operation, status, payload). |
| 54 | + </li> |
| 55 | + <li> |
| 56 | + <code>@AfterThrowing</code> advice logs exceptions (error type, message, endpoint, method, operation). |
| 57 | + </li> |
| 58 | + <li>Constructs a <code>LogEntity</code> and persists it via <code>LogService</code>. </li> |
33 | 59 | </ul> |
34 | 60 |
|
35 | 61 | <h3>REST API Design</h3> |
@@ -224,6 +250,7 @@ Endpoints Summary |
224 | 250 | - Sonarqube |
225 | 251 | - Kubernetes |
226 | 252 | - JaCoCo (Test Report) |
| 253 | +- AOP |
227 | 254 |
|
228 | 255 | ### Postman |
229 | 256 |
|
|
0 commit comments