webapi -- final polishing #100
Labels
No Label
0.2.0
0.3.0
0.4.0
0.5.0
0.5.1
0.6.0
0.6.1
0.7.0
0.8.0
0.9.0
1.0.0
1.1.0
1.10.0
1.10.1
1.10.2
1.10a2
1.11.0
1.12.0
1.12.1
1.13.0
1.14.0
1.15.0
1.15.1
1.2.0
1.3.0
1.4.1
1.5.0
1.6.0
1.6.1
1.7.0
1.7.1
1.7β
1.8.0
1.8.1
1.8.2
1.8.3
1.8β
1.9.0
1.9.0-s3branch
1.9.0a1
1.9.0a2
1.9.0b1
1.9.1
1.9.2
1.9.2a1
LeastAuthority.com automation
blocker
cannot reproduce
cloud-branch
code
code-dirnodes
code-encoding
code-frontend
code-frontend-cli
code-frontend-ftp-sftp
code-frontend-magic-folder
code-frontend-web
code-mutable
code-network
code-nodeadmin
code-peerselection
code-storage
contrib
critical
defect
dev-infrastructure
documentation
duplicate
enhancement
fixed
invalid
major
minor
n/a
normal
operational
packaging
somebody else's problem
supercritical
task
trivial
unknown
was already fixed
website
wontfix
worksforme
No Milestone
No Assignees
2 Participants
Notifications
Due Date
No due date set.
Reference: tahoe-lafs/trac-2024-07-25#100
Loading…
Reference in New Issue
No description provided.
Delete Branch "%!s(<nil>)"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Before releasing v0.5, I'd like to consider some changes to webapi.txt:
See also ticket #98
webapi.txt -- final polishingto webapi -- final polishingI've added #102 for the "replace / with ! in POST uris" issue.
Okay here's my current plan for webapi for v0.5 release (which will hopefully be today, or maybe tonight...)
Forget about "removing name-based actions" from the webapi.
Forget about adding the "?t=file" constraint, because the better way to avoid that ambiguity is to use the URI of the thing, in which case you already know definitely whether it is a file or a directory.
I think I'll replace the TOCTTOU warning paragraph with the new one that I wrote in the new version of webapi.txt.
It would be nice if Brian would look at the "XXX -- underspecified" notes in the current webapi.txt. Maybe it is okay to leave them underspecified for this release -- I'm not sure so I would like Brian to look at it.
We need to either add the "?overwrite=" flag or else make it so that it does not overwrite, in the current version. (Because if it does overwrite there is no way to use it in a way to ensure not overwriting, but if it doesn't overwrite then you can simply delete-and-retry until you've successfully overwritten.)
I'm going to replace "dirnode" with "directory".
Brian: what do you think?
sounds good.
my action items:
I've pushed changes to webapi.txt to address the underspecified sections.
I'm going to implement ?overwrite=false on the PUT command, making the default to be to accept overwrites without complaint. Note that HTTP's docs on PUT dictate a different return code for "you've just created a new resource" vs "you've just replaced an existing resource", which I think suggests that the HTTP authors thought that quietly-replacing was a fairly common operation.
A fellow on the #rest channel on IRC, nick of "jsled" suggested that we use accept headers instead of query params e.g. "?t=json" for content negotiation.
yeah, that seems more RESTful.. I wonder how convenient it is for developers (i.e. does urllib make it easy to add request headers?). Also we'd need to define some MIME types.. x-allmydata/x-directory-json ?
Maybe we could declare that appending
?t=json
to the URL is a shortcut/alias for addingAccept: x-allmydata/x-directory-json
to the request headers, and thus allow both types of access.The client would need to pay attention to the response's Content-Type: and make sure it matches what they expected.
Also, there are probably places where this could be used to tell the client whether they're visiting a directory node or a file node.