Рет қаралды 769
The issue with HTMX arises from its need to interact with a server that returns pre-rendered html, especially when you're handling APIs and making API calls with external servers. Usually, you want to keep exchanged data in bytes rather than as document data, and html is a document data mark-up. You can make this work with HTMX, though it is against common practice.
Most APIs include data serialization to keep data as bytes, typically using json as the returned data. To work with HTMX, you'd normally need to update or create a wrapper for the API to return html instead of json, which requires extra server work. Alternatively, you can have data view patterns where you include parameters at the end of the API call URL specifying the data return format.
This could be json, seabor, or even html. Whilst this is possible, it's a lot of extra server work. Wouldn't life be easier without having to do that?
You could interact with any API and still use HTMX. Luckily, you can. HTMX simplifies this process by including a client-side template extension, complete with a range of supported templates. These templates use languages such as mustache and handlebars, which are very common and probably the most useful in this scenario.
So, if you want to interact directly with json APIs, check out the client-side template extension in HTMX. This extension allows you to use json as your input data and incorporate that into your HTMX application. Most server APIs are written in or return json data. HTMX prefers you to use HTML returned directly from the server, which means additional server work. with the client-side templates extension, you can transform json and xml requests into html using a client-side template.
This extension is fantastic and makes interaction with HTMX much simpler. You can use this process instead of having a server return HTML data. It's an easy installation requiring you to simply paste in a script alongside your other scripts.
If you're working with platforms like WordPress with a robust API, you can interact with all the components stored in the WordPress database. All your data is referenceable by ID and paginated, allowing you to fetch, update, or even import data. You can also achieve this with the HTMX framework, which makes it super easy to build front-end web apps without the need to write any JavaScript at all. it does want you to import all of your API calls using HTML, which you can do with a client-side templates extension that supports transforming json or xml into html directly.
Now you can consume any API, including the WordPress API, obliging HTMX. With this process, you're able to directly interact with JSON APIs using the HTMX framework. This gives you more flexibility on the front end as you can capture data from a JSON API and place it anywhere you want more easily rather than simply getting a bundle of HTML from the server. The front-end flexibility comes with interacting with any data part and placing that data wherever you want on the UI. You can download the data from the WordPress API for testing purposes, put it into the same directory calling it WordPressData.json.
Then, using a template engine like mustache, iterate through lists of items. In WordPress, iterate the number of posts; in mustache, all you have to do is type posts and then any data inside the list would be an object. Then, you can just import your template engine to be used with mustache, making the whole looping process easy.
Once this process is done, all you have to do is open your HTML page in a web browser, run a server, and you have a list of the WordPress posts on the page using HTMX. Please note, you need to include dependencies like the HTMX core library, the client-side template extension, and the template engine you're using, which is mustache, in this instance. Ensure that each extension is being used here, set your button to fetch the data. In an instance where JSON data is stored locally, the swap can be inner HTML, but the target is going to be the ID of content.
You're going to use the mustache template, iterate over all the posts in the return of JSON, and print out just the title, the author, and the ID of the post. That's all. The HTML needs a minor modification so it can interpret this new syntax, which provides more frontend flexibility.
You are able to capture the data from a JSON API and put that wherever you want more easily than directly getting the bundle of HTML from the server. This straight-forward process is all you need to interact directly with JSON APIs using HTMX framework.