2017-04-10 1 views
0

routes.confcadre de lecture obtenir tableau de paramètres de chaîne de requête de Request.QueryString

GET /api/v1/jurisdictions controllers.v1.JurisdictionController.getJurisdictions() 

JurisdictionController

def getJurisdictions() = Action { implicit request => 
     // this is returning None 
     val filters = request.queryString.get("filters") 


     val result = jurisdictionService.getJurisdictions() 
     Ok(serializer.serialize(result)).as("application/json") 
    } 

demande pertinente URI:

http://localhost:9000/api/v1/jurisdictions?filter[name]=Ryan&filter[number]=333333

Comment puis-je saisir cette requête string filter?

Répondre

-1

Vous devez créer une coutume liant c'est une implémentation Java mais il suit le même principe:

public class AgeRange implements QueryStringBindable<AgeRange> { 
    public Integer from; 
    public Integer to; 

    //A simple example of the binder’s use binding the :from and :to query string parameters: 

    @Override 
    public Optional<AgeRange> bind(String key, Map<String, String[]> data) { 

     try{ 
      from = new Integer(data.get("from")[0]); 
      to = new Integer(data.get("to")[0]); 
      return Optional.of(this); 

     } catch (Exception e){ // no parameter match return None 
      return Optional.empty(); 
     } 
    } 

    @Override 
    public String unbind(String key) { 
     return new StringBuilder() 
      .append("from=") 
      .append(from) 
      .append("&to=") 
      .append(to) 
      .toString(); 
    } 
} 

Java documentation

Scala documentation

+0

Merci pour votre réponse, mais cela est une question de scala –

+0

Mis à jour la réponse, le principe et la mise en œuvre sont fondamentalement dans les deux langues; jetez un oeil dans la documentation. – pedroct92