I'm an iOS developer and I have no idea why your guy thinks he needs to create "a parsing method." UUID(uuidString: valueFromServer)
is all he needs to do. He can create your magic UUID by simply:
extension UUID {
static var zero: UUID { return UUID(uuidString: "00000000-0000-0000-0000-000000000000")! }
}
Then he can compare any GUID to this magic GUID.
That said, for all values that come from the server, the frontend developer must first check to see if the value is there, then check to see if it's well formed (of the right type.) If you are returning a magic value, then he must also check to see if the correctly typed value is magic. By including the magic value, you are forcing him to make an additional if check.
As a frontend developer, I have to ask: For what reason are you forcing me to increase the complexity of my app?
If you can make an argument that the frontend should treat a missing GUID differently than the magic GUID, then you have an argument for returning it. Otherwise you are adding unnecessary complexity to the frontend app.
(Addition in response to @RubberDuck's comment.)
Here's the thing. The JSON standard has one way of dealing with null values and the GUID standard has a different way of dealing with null values. Since you are sending a GUID through JSON, the latter is the overarching concern (because the GUID is being wrapped in JSON,) it is the standard you should conform to... Because even if you decide to send a null GUID by actually sending a GUID full of zeros, the frontend still has to check for the JSON null.
Don't force the front end to deal with two different concepts of null.