SaschaWillems / vulkan.gpuinfo.org

Front-End and Back-End for the Vulkan Hardware Database
https://vulkan.gpuinfo.org
GNU Affero General Public License v3.0
23 stars 4 forks source link

Feature Request: GraphQL and REST API #94

Open Neo-Zhixing opened 1 week ago

Neo-Zhixing commented 1 week ago

Would it be possible to add a GraphQL and REST API to this website? The existing APIs are insufficient and seems painful to use.

This can be easily done using tools like Hasura

My use case is that I'm trying to add integration with gpuinfo.org on VulkanHub so that the user can directly see the extension and feature coverage info on the Vulkan refpages.

cc #77

SaschaWillems commented 5 days ago

Would it be possible to add a GraphQL and REST API to this website? The existing APIs are insufficient and seems painful to use.

Can you elaborate on this? Why do you think it's insufficent and what exactly is painful? That sounds very negative.

Also not all parts of the api are public, so you may not know about the whole picture.

Neo-Zhixing commented 4 days ago

@SaschaWillems Thank you for your response.

painful to use

I would like to query the coverage of certain extensions and features. The API allowing me to do this seems to be https://github.com/SaschaWillems/vulkan.gpuinfo.org/blob/master/api/internal/extensions.php which returns something that looks like this:

image

The JSON contains pre-rendered HTML snippets, meaning that I will now have to parse those HTML snippets in order to obtain the information I need. This is generally considered suboptimal practice - you typically want to compose the HTML on the front end instead.

I understand that this is an internal API exclusively for the PHP website, but I have not found a different API where I can easily obtain this information unless I download all reports, put them into a database, and parse them on my own.

insufficient

You have acknowledged the utility of a more advanced and flexible API in #16 where you said

I'm not happy with the limited search capabilities myself and that's something I want to improve

I plan on making this as flexible as possible from the programming's POV, so new search requirements can be easily added.

So my understanding is that the primary reason this hasn't been done is the engineering cost.

In #77 you have said that you will not expose a SQL interface to allow easy query of the website content. A solution powered by tools like Hasura would probably minimize the engineering cost all while maintaining the access and security restrictions you would like to put in place.

Generally, I'm not creating this issue to criticize the design of the existing APIs. I would like to understand if you will be open to using a third-party tool that makes it easy to expose the database in a secure manner, which seems to be a relatively common request from the website users.