Hacktoberfest 2026: những issue maintainer đã đánh dấu cho tháng Mười, đang mở và phù hợp người mới. Xem issue Hacktoberfest

EPIC slug aggregator

Đang mở
#151 7 bình luận 0 reaction 0 người được giao Xem trên GitHub

Chưa có ai nhận issue này.

Đánh giá

Độ khó
5/5
Thời gian dự kiến
Hơn một tuần
Mức phù hợp với người mới
35/100
Loại issue
Tính năng
Độ rõ ràng
Khá rõ ràng
Mức độ hoạt động
Đình trệ
Công nghệ
javascript
Lĩnh vực
api, backend, databases

Hướng nghiên cứu

Bắt đầu bằng cách lần theo các đường dẫn yêu cầu đã được ghi chép /v1/id/slug và /since/slug, sau đó xem xét cách xử lý CREATE POST và việc cập nhật đối với header slug và chuỗi truy vấn ?slug=. Sử dụng các quy tắc đã nêu về chuẩn hóa, quyền sở hữu, tính duy nhất, độ dài và lập phiên bản làm tiêu chí chấp nhận, bao gồm cả sự khác biệt giữa việc tra cứu theo slug và theo _id.

Do mô hình lập chỉ mục viết ra từ nội dung của issue.

Mô tả

We've got some light slug functionality, but we need it to work all the time. Here's what they do...

9.7. The Slug Header link

Slug is an HTTP entity-header whose presence in a POST to a Collection constitutes a request by the client to use the header’s value as part of any URIs that would normally be used to retrieve the to-be-created Entry or Media Resources.

Servers MAY use the value of the Slug header when creating the Member URI of the newly created Resource, for instance, by using some or all of the words in the value for the last URI segment.

In addition to the "get by _id" lookup for documents, a request like "https://store.rerum.io/v1/id/slug-life" should return the document matching { "__rerum.slug" : "slug-life" } in the repository.

An application suggests a slug by passing in a slug header in the CREATE POST or by adding a "?slug=" query string. If both exist, the header is used as the server will ignore query strings.

RERUM saves a new object with the __rerum.slug property and separate generated _id. RERUM responds with the normalized slug in the @id field of the response object.

In an update, a document owner can move the slug to a new version, prompting RERUM to update the __rerum.slug properties for both records.

API behaviors will be listed below as they may each interreact differently. Slug conditions in all cases are clear:

  1. Only one document can hold a slug at any time.
  2. Only the owner can move slug from one document to another.
  3. Slugs are entirely lowercase, with accented characters replaced by letters from the English alphabet and whitespace characters replaced by a dash or an underscore, in order to avoid being encoded. Punctuation marks are generally removed.
    • This, That & the Other! Various Outré Considerations <= input
    • this-that-the-other-various-outre-considerations <= stored slug
  4. Slugs are trimmed to 50 characters.
  5. A document may only have one slug assigned to it at a time.
  6. Slugs are helpful and efficient, but not a promise of durability, so the _id must be used in all versioning.
    • A "/since/slug" request with a slug is not idempotent, because the slug may have moved, but "since/_id" is.
    • An "/id/slug" request may not always return the same document and may go 404, which a deleted document does not.
Ngôn ngữ chính
JavaScript
Star
3
Fork
6
Merge trung bình
4 ngày 9 giờ
Pull request đã merge (30 ngày)
5

Chuẩn bị môi trường

Bắt đầu từ đâu

  1. Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
  2. Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
  3. Fork repository và làm thay đổi trên một nhánh.
  4. Mở pull request có tham chiếu số hiệu của issue.

Issue khác của CenterForDigitalHumanities/rerum_server_nodejs

Tất cả issue của CenterForDigitalHumanities/rerum_server_nodejs

Issue tương tự

Thêm issue về JavaScript

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.