JSON è (di gran lunga) l'opzione più flessibile e moderna dei due, quindi mi piacerebbe farlo. Soprattutto se hai già deciso di restituire una risposta in JSON.
Detto questo, non c'è motivo per cui non puoi supportare entrambi, se questo è vantaggioso per i consumatori della tua API. I moduli HTML inviano il loro contenuto a una richiesta HTTP in cui l'intestazione HTTP Content-Type
verrà impostata su application/x-www-form-urlencoded
, mentre il tipo di contenuto corretto per JSON è application/json
.
Alcuni framework, ad es. API Web ASP.NET offrono alcuni serializzazione automatici della posta in arrivo richiesta (che si tratti di XML o JSON, non sono sicuro che questo framework supporti la codifica dei moduli), sollevando da te l'onere di questo compito.
Se stai creando API REST, puoi utilizzare la specifica Swagger ; è un formato di definizione (YAML) per descrivere API RESTful che creano un'interfaccia per lo sviluppo e il consumo di un'API facilmente mappando le risorse e le operazioni ad esso associate. È indipendente dal linguaggio, quindi puoi generare servizi per molti linguaggi lato server / client, è leggibile e soprattutto genera una buona documentazione delle specifiche API.