Richiesta REST di lunghezza diversa

1

Quando un client richiede il mio .../resources/user URL con un HTTP GET ottengo la seguente risposta:

<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<collection>
    <User id="5">
        <Password>DC647EB65E6711E155375218212B3964</Password>
        <FirstName>Super</FirstName>
        <LastName>Admin</LastName>
        <Role id="4">
            <Description>Default Guest Role</Description>
            <Group id="2">
                <Description>Default Guest Group</Description>
                <Name>GuestGroup</Name>
            </Group>
            <Name>Guest</Name>
        </Role>
        <Role id="3">
            <Description>Default Super Admin Role</Description>
            <Group id="1">
                <Description>Default Admin Group</Description>
                <Name>AdminGroup</Name>
            </Group>
            <Name>SuperAdmin</Name>
        </Role>
        <Username>superadmin</Username>
    </User>
    <User id="6">
        <Password>DC647EB65E6711E155375218212B3964</Password>
        <FirstName/>
        <LastName>Guest</LastName>
        <Role id="4">
            <Description>Default Guest Role</Description>
            <Group id="2">
                <Description>Default Guest Group</Description>
                <Name>GuestGroup</Name>
            </Group>
            <Name>Guest</Name>
        </Role>
        <Username>guest</Username>
    </User>
</collection>

Per motivi di efficienza nel trasporto dei dati, vorrei che il cliente fosse in grado di richiedere una versione breve di questa risposta. Qualcosa come:

<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<collection>
    <User id="5">
        <Password>DC647EB65E6711E155375218212B3964</Password>
        <FirstName>Super</FirstName>
        <LastName>Admin</LastName>
        <Role id="4" />
        <Role id="3" />
        <Username>superadmin</Username>
    </User>
    <User id="6">
        <Password>DC647EB65E6711E155375218212B3964</Password>
        <FirstName/>
        <LastName>Guest</LastName>
        <Role id="4" />
        <Username>guest</Username>
    </User>
</collection>

Qual è il modo migliore per identificare una richiesta completa e una breve dal cliente e perché? La tecnologia client dovrebbe essere agnostica. La tecnologia server è Java EE 7

Alcune opzioni che ho pensato a me stesso:

  • Servizi Web di livello secondario come .../resources/user/short
  • Diversi servizi web come .../resources/user2
  • Utilizza un parametro HTTP personalizzato lik Accept-Length : Short
  • Utilizza il campo di richiesta HTTP Expect : Short
posta Martijn Burger 20.01.2015 - 17:47
fonte

1 risposta

0

La mia vista è che il client richiede una rappresentazione diversa della risorsa, ad esempio una breve.

Quando richiedi una rappresentazione diversa (come json o xml) questo normalmente viene taggato alla fine della risorsa, ad es. /some/resource.json, /some/resource.xml

Quindi potresti prendere la stessa logica e fare qualcosa come /some/resource.short.json

    
risposta data 30.01.2015 - 10:39
fonte

Leggi altre domande sui tag