blog/backend
SquidSpirit 565df7aace
All checks were successful
Frontend CI / build (push) Successful in 1m26s
BLOG-125 Get post by sementic ID (#134)
### Description

#### Backend

- String and interger can be pass as `id` to `GET` `/post/{id}`

- For the posts existed, the default `semantic_id` for them will be `_id`. (e.g. `_1`, `_2`)

- Semantic ID should follow the rules:

  1. It shouldn't be an integer

  1. It should match the pattern: `^[0-9a-zA-Z_\-]+$`

  <br>

  |Semantic ID|Result|Note|
  |-|-|-|
  |12|X|against with `i`|
  |-3|X|against with `i`|
  |3.14|X|against with `ii`|
  |hello world|X|against with `ii`|
  |*EMPTY*|X|against with `ii`|
  |12_34-56|O||

#### Frontend

- The href of post preview card becomes the semantic ID.

### Package Changes

```toml
regex = "1.12.1"
```

### Screenshots

![截圖 2025-10-12 下午6.23.12.png](/attachments/67de1cd7-f584-40ad-9bbd-27f8bf6f1894)

### Reference

Resolves #125.

### Checklist

- [x] A milestone is set
- [x] The related issuse has been linked to this branch

Reviewed-on: #134
Co-authored-by: SquidSpirit <squid@squidspirit.com>
Co-committed-by: SquidSpirit <squid@squidspirit.com>
2025-10-12 18:28:58 +08:00
..

Backend

Development

SQL Migration

  1. Install sqlx

    cargo install sqlx-cli
    
  2. Run migration

    sqlx migrate run
    

Run Project

  1. Prepare for sql schema setup

    cargo sqlx prepare --workspace
    
  2. Run the server

    RUST_LOG=debug cargo run
    
  3. (Optional) Hot restart

    1. Install watchexec

    2. Run the server with watchexec

      RUST_LOG=debug watchexec -e rs -r 'cargo run'