playframework / playframework/playframework

Allow for using dot in query string parameter

Open
#8,991 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

type:improvement
Dominant language
Scala
Stars
12.6k
Forks
4k
Avg merge
2d 3h
Merged PRs (30d)
29

Description

Play Version (2.5.x / etc)

2.6.18

API (Scala / Java / Neither / Both)

Java

Operating System (Ubuntu 15.10 / MacOS 10.10 / Windows 10)

Windows 7

JDK (Oracle 1.8.0_72, OpenJDK 1.8.x, Azul Zing)

JDK 9.0.4

Library Dependencies

N/A

Expected Behavior
GET     /mycallback controllers.MyController.mCallback("test.x": java.util.Optional[String])

should be allowed

Actual Behavior

Neither myCallback(test.x: java.util.Optional[String]) nor myCallback("test.x": java.util.Optional[String]) is allowed.
Compilation fails with:

[error] workspace\conf\routes:112: Compilation error[`)' expected but `"' found]

or

[error] workspace\conf\routes:112: Compilation error[`)' expected but `.' found]
Reasoning

test.x is perfectly valid query string parameter. For example Facebook uses hub.verify_token for its callbacks

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with the route definition and query-parameter syntax shown in the issue, then trace the route compiler/parser that rejects the dot in test.x. Reproduce the failure with the Java Optional[String] callback example; done means dotted query-string parameter names are accepted without breaking existing route syntax.

Written by the indexing model from the issue text.

Assessment

Tech stack
java, scala
Domain
api, backend
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.