Mau conselho para a API REST "perfeita"

Olá!



Por que 'ideal' está escrito entre aspas?!

, " ", , — )



Provavelmente muitos de nós criaram APIs REST ou usaram as já prontas de outra pessoa. Vamos dar uma olhada nos truques "incríveis" que o ajudarão a tornar sua API um ponto acima das outras.



cinto branco



Todos os valores em json são string e não de outra forma!



Bem, vamos pegar o objeto mais simples:



{
  "stringValue" : "value",
  "intValue": 123
}


É por isso que 123 está aqui para definir um número, por que tanta confusão? Que seja uma string, o desserializador descobrirá:



{
  "stringValue" : "value",
  "intValue": "123"
}


, ? … ?



{
  "stringValue" : "value",
  "intValue": "123",
  "complexValue": {
    "key": "value"
  }
}


… ! -:



{
  "stringValue" : "value",
  "intValue": "123",
  "complexValue": "{
    \"key\": \"value\"
  }"
}


? ? , ? , !



{
  "stringValue" : "value",
  "intValue": "123",
  "complexValue": "{
    \"key\": \"value\",
    \"anotherComplexValue\": {
      \"superKey\": \"megaValue\"
    }
  }"
}


, ! ! !… ? ? , , . complexValue ? , , , , .



"Key": Value — , ...



2-3 , ? :



[
  25000, 
  "", 
  {
    "key1": "value1",
    "key2": "value2"
  }
]


! ? ! ? . , !



[
  25000, 
  "", 
  "{
    \"key1\": \"value1\",
    \"key2\": \"value2\"
  }"
]


! ! , , 5 :



[
  25000, 
  "",
  [
    "value1",
    "value2"
  ] 
]


! json , !







: — , ?



[
  "",
  "[
    \"value1\",
    \"value2\"
  ]",
  "25000"
]


? 3- ? , , , . ? 25000, , . ? ? — , !



. …



- . , , . :



{
  "queryType": "select",
  "table": "lyudi",
  "where": "name =  AND zarplata > 15000"
}


! ! ? , , )

, ?

, !

… ! :



{
  "query": "select * from lyudi where name =  AND zarplata > 15000"
}


! ? ? ? , . ORM? ? -. MSSQL .





""! -



: API ? : ! ! rest' . : , ! !



?!

, , , "", , , , )



, api vpn , : .





- , ! -!



JSON



. , ! , - :



{}


:



{
  "key1": "value1",
  "key2": 2
}


:



{
  "key1": "value1",
  "key2": 2,
  "key3": {
    "123": 456
  }
}


, :



{
  "objectAsArray": ["Vasya", 123, 456, "Piter"]
}


! !





! JSON : VARCHAR(MAX). !



!



dbf, ? !



{
  "data": "Vasya     123  456  Piter                  "
}


10 , 5 , 5 , 20 . , ! , , !





!



— ? , , !



{
  "data": [56, 61, 73, 79, 61, 20, 20, 20, 20, 20, 31, 32, 33, 20, 20, 34, 35, 36, 20, 20, 50, 69, 74, 65, 72, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20]
}


! :



{
  "data": "[56, 61, 73, 79, 61, 20, 20, 20, 20, 20, 31, 32, 33, 20, 20, 34, 35, 36, 20, 20, 50, 69, 74, 65, 72, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20]"
}


, !



P.S. "" P.S. ...



Se te pareceu que o autor exagera e inventa, então ... O autor gostaria que assim fosse. No entanto, tive que lidar com cada um desses casos. Vamos nos respeitar e fazer o bem, e não um disparate) Obrigado pela atenção, espero que em alguns lugares não tenha sido só triste, mas também divertido!




All Articles