Comments (2)
I feel like I've seen some hypermedia-ish APIs (or recommendations in a blog post) that return an array of links, with a name
and content-type
for each link. It looked something like:
"links": [
{
"name": "self",
"url": "https://github.com/exercism/test-maintainer-sync/pull/3",
"content-type": "text/html"
},
{
"name": "diff",
"url": "https://github.com/exercism/test-maintainer-sync/pull/3.diff",
"content-type": "text/plain"
},
{
"name": "patch",
"patch_url": "https://github.com/exercism/test-maintainer-sync/pull/3.patch",
"content-type": "text/plain"
},
{
"name": "issue",
"url": "https://api.github.com/repos/exercism/test-maintainer-sync/issues/3",
"content-type": "application/json"
}
]
I don't remember where I saw this, but one thing that sticks out is that it makes it a lot harder to traverse urls (pr.diff_url
vs iterating over links
to find the one with the right name and content type).
With everything moving to GraphQL, I doubt it is worth spending much energy to improve the hypermedia support.
Anyway. I wonder if it would be useful to let people use the client to follow URLs.
One of the features I like of octokit.rb is that you can pass any of these URLs to Octokit.get
, like Octokit.get(pr.patch_url)
from discussions.
With everything moving to GraphQL, I doubt it is worth spending much energy to improve the hypermedia support.
That is a good point.
One of the features I like of octokit.rb is that [...]
I had no idea! That's really useful. In fact, this would be a nice standard thing to support across clients, if it's not a hassle.
from discussions.
Related Issues (20)
- Maintainers sync - Nov 29 2017
- How to handle 2FA authentication? HOT 9
- Get archive link API: return URL or full archive content? HOT 4
- Caching: handling 304 responses HOT 6
- v3 REST API documentation: Upload release asset HOT 5
- v3 REST API docs: inconsistencies in notifications_url URI templates HOT 8
- v3 REST API: Inconsistencies in DELETE endpoints with request bodies HOT 2
- GitHub-specific URI template parsing HOT 14
- v3 REST API: replace :varname with {varname} in endpoint route docs HOT 2
- Inconsistency in issue label endpoints in rest.js HOT 2
- Inconsistency in Lists of Official Libraries HOT 2
- Suggestion: show some metadata in list of third-party libraries HOT 1
- Include a Python library HOT 1
- How to handle "ENOTFOUND api.github.com" responses HOT 1
- GraphQL & query injection attacks
- Should this repo be archived? And migrate open issues to GitHub Discussions? HOT 3
- Where to direct support requests HOT 2
- Best practices for making it easy for contributors to run tests HOT 18
- Transition plan for node-github HOT 25
- Webhook support in octokit.js HOT 3
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from discussions.