CenterForDigitalHumanities / CenterForDigitalHumanities/rerum_server_nodejs

`Content-Type` Header Processing

Open
#175 3 comments 0 reactions 0 assignees View on GitHub
bug
Dominant language
JavaScript
Stars
3
Forks
6
Avg merge
1h 25m
Merged PRs (30d)
3

Description

The bug is that RERUM will create an empty object in the following scenario.

![image](https://github.com/CenterForDigitalHumanities/rerum_server_nodejs/assets/3287006/0d15ac98-c984-4875-b256-6fdb090bed13)

> Note: If you do not omit the 'Content-Type' header from this request, RERUM correctly responds with a 400 and a good message.

When a request to `/create` (and likely others) happens and the request does not contain "Content-Type: application/json" but the body is a valid string or empty, RERUM processes the request and creates an empty object in the database. It responds 201 with that empty object as JSON in the body, and client applications receive the 201 with the empty object.

When a request to /create, any of the update-y endpoints, or /query comes in, it MUST contain the 'Content-Type' header, the value for the header has to a supported JSON type (application/json), the body MUST NOT be empty and MUST contain valid JSON with at least on key:value pair.

If any of these conditions are not met, RERUM should respond 400 - Bad Request with as detailed of a message as is useful.

Contributor guide

Open the contributing guide

Research direction

Trace the request handlers for /create, the update-y endpoints, and /query, then inspect how Content-Type and request bodies are parsed. Verify the behavior with requests missing the header, using unsupported JSON types, or containing empty or invalid bodies; done means each invalid case returns 400 with a useful message and valid JSON requests still succeed without creating empty objects.

Written by the indexing model from the issue text.

Assessment

Tech stack
javascript
Domain
api, backend
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
55/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.