Hacktoberfest 2026:メンテナが10月に向けて印を付けた、オープンで初心者向けの issue。 Hacktoberfest の issue を見る

EPIC slug aggregator

オープン
#151 コメント 7 件 リアクション 0 件 担当者 0 名 GitHub で見る

まだ誰も着手していません。

評価

難易度
5/5
見積もり時間
1週間以上
初心者へのやさしさ
35/100
issue の種類
機能追加
明瞭さ
おおむね明確
活発さ
停滞
技術スタック
javascript
領域
api, backend, databases

調査の方向性

まず、文書化されている /v1/id/slug と /since/slug のリクエストパスを追跡し、次に slug ヘッダーと ?slug= クエリ文字列について、CREATE POST と更新の処理を確認します。提示されている正規化、所有権、一意性、長さ、バージョニングのルールを受け入れ基準として使用し、slug による検索と _id による検索の違いも含めます。

索引モデルが issue の本文から書いたものです。

説明

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.
主要言語
JavaScript
スター
3
フォーク
6
平均マージ
4日 9時間
マージ済み PR(30日)
5

環境構築

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

CenterForDigitalHumanities/rerum_server_nodejs のほかの issue

CenterForDigitalHumanities/rerum_server_nodejs の issue をすべて見る

似ている issue

JavaScript の issue をもっと見る

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。