Saran buruk untuk REST API yang "sempurna"

Halo!



Mengapa 'ideal' ditulis dengan tanda petik ?!

, " ", , — )



Mungkin, banyak dari kita telah membuat REST API, atau menggunakan yang sudah jadi milik orang lain. Mari kita lihat trik "luar biasa" yang akan membantu Anda membuat API Anda lebih baik dari yang lain.



sabuk putih



Semua nilai di json adalah string dan bukan sebaliknya!



Nah, mari kita ambil objek paling sederhana:



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


Itulah mengapa 123 ada di sini untuk mengatur angka, mengapa kebingungan seperti itu? Biarlah itu sebuah string, deserializer akan mengetahuinya:



{
  "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. ...



Jika menurut Anda penulis membesar-besarkan dan menciptakan, maka ... Penulis ingin seperti itu. Namun, saya harus menangani masing-masing kasus ini. Mari saling menghormati dan berbuat baik, dan bukan omong kosong) Terima kasih atas perhatiannya, saya harap di beberapa tempat tidak hanya sedih, tapi juga menyenangkan!




All Articles