Skip to content

What does the server need? #37

@kjetilk

Description

@kjetilk

I've read through the spec dated 2021-01-05, and the main thing that was hard to discern throughout the spec is to answer the question "what does server implementations need to do in order to support Shape Trees that lies beyond the Solid Protocol?"

I would myself prefer the answer to that question to be "nothing much". :-) Anyway, I'll just dump my initial impression on you, take it as you wish:

There are a few places where it seems to break orthogonality for no good reason, for example, when it in section 3.2.5.1 mandates a 404 response when the protocol recommends a 410 response in some situations. It would be much better to merely reference the protocol in such situations.

In other situations, e.g. section 3.2.5.4, it operates with POST and PUT, names things via Slug. This should be covered in the protocol, and thus a reference there would be better. If Shape Trees result in specific requirements that aren't covered, then I think it is better to raise it so that it gets into the protocol.

One example of this seems to be the 422 error. I think that would be better served if we had a validation section in the protocol where some classes of validation failures would be detailed, and Shape Trees referenced that.

There are some situations where I get confused, for example in Section 4.1, where it says that the operation may be performed by a client, but goes on to require a 422 error code? I may be totally misunderstanding how this is meant to operate, but surely, it doesn't make sense that a client returns an error code...?

So, given some development in the protocol (e.g. around validation), and given what is currently usual protocol behavior, could Shape Trees it doesn't seem to me there isn't a lot that actually would place any burden on server implementations? It seems that the Link header is the main thing, and I see the value of discovery using the HEAD HTTP verb, but could it conceivably be good enough to place that link in the container?

Metadata

Metadata

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions