Zajmuję się tworzeniem interfejsu API w celu ujawnienia niektórych danych przy użyciu interfejsu ASP.NET Web API.Określanie niestandardowego formatu DateTime podczas serializacji za pomocą Json.Net
W jednym z interfejsów API klient chce, abyśmy ujawnili datę w formacie rrrr-MM-dd. Nie chcę zmieniać ustawień globalnych (np. GlobalConfiguration.Configuration.Formatters.JsonFormatter
), ponieważ jest to bardzo specyficzne dla tego klienta. I rozwijam to w rozwiązaniu dla wielu klientów.
Jednym z roztworem, że mogę myśleć jest stworzenie własnego konwertera JSON, a następnie umieścić że do właściwości muszę zrobić formatowanie niestandardowej
np
class ReturnObjectA
{
[JsonConverter(typeof(CustomDateTimeConverter))]
public DateTime ReturnDate { get;set;}
}
Zastanawiam się, czy istnieje inny łatwy sposób na zrobienie tego.
Za to, co Warto, interfejsy API są przeznaczone do odczytu komputerowego, a nie czytelności dla użytkownika, więc lepiej trzymać się jednego określonego formatu daty, takiego jak [ISO 8601] (http://xkcd.com/1179/). Jeśli klient bezpośrednio wyświetla wynik interfejsu API użytkownikowi lub pisze własny kod analizujący datę dla interfejsu API, robi to źle. Formatowanie daty wyświetlania należy pozostawić do najwyższej warstwy interfejsu użytkownika. – MCattle