Xano and XML Services

Ray Deck explains why Xano can't easily connect to Nextcloud's XML-based API and suggests three workarounds: use AWS Lambda or Netlify to handle the XML parsing, bridge through Make.com, or switch to a simpler storage service like Uploadcare. Martin chooses Make.com despite Google Drive being easier, because Nextcloud fits his application better.
Chapters
From time to time, I guest mentor on Xano Office Hours, where people bring usually relatively complex problems about APIs or data manipulation, and I try to help them through it as part of that team. The Xano Office Hours were sort of, for me, a progenitor of what eventually turned into StateChange. In the following segment, I'm helping a gentleman who is trying to implement connection to a file storage system, an open, an open source one that uses the a little bit older WebDAV protocol, which is built on top of XML, which at one time was a really popular way to build interfaces. And nowadays you see JSON more often. We talked a little bit through it about how Xano really gives you access to primitives but not so much to libraries, and so this winds up playing on hard. And at the end, he reaches a conclusion that what he wants to do is continue to use Xano for his backend, and he's going to compose in a scenario that he built in Make.com, what used to be called Integromat, in order to build this particular bridge. It's a good lesson for us all that we need to look at what these individual tools do that they're really, really good at and bring that superpower to bear, and that to be a no-coder is to be a composer. I hope you enjoy. And Martin, you have been very patient, and I see you've got a nice Polygon t-shirt too.
Yes, I do. Going to the meetups. All right. So my question is this. I'm trying to build a— what I want to like to achieve is I would have a variable with just this simple string and I want to create a folder in my Nextcloud that is named after that variable. So relatively simple. The problem is I'm pretty new to Tano and I fall a little bit into the trap of this is no-code. So there is more code into no-code than I thought. So I really don't know where to start. So what I have found so far, obviously, is— let me quickly share my screen. Um, screen 2. Hope you see it. Um, what I found so far is the docu. So in here I can see that I can somehow get like, um, client APIs, and then it's webdev. So I have no idea what webdev is and how to use that.
Yeah, I would, I wouldn't recommend anybody. Yeah, yeah, sure, go ahead.
It gives me a curl and I, yeah, and I, I have no idea how to really set this up in Xano. So, and if not webdev, then what else of these options are much better to use. And yeah, so I just need your input.
Sure. Okay, so let's talk about, um, Nextcloud. Nextcloud is, um, well, it's mostly an on-prem, uh, collaboration system, right?
And it's an open source, um, yeah, open source storage, storage system basically. Like, I don't know, Dropbox or— Well, yep. Open source.
So like many open source systems, it is not designed to be easy to work with from a no-code environment. They are, they, they're very much developer focused as a result of that, right? And they are about how giving you APIs that if you are a sophisticated developer, you can use to work with the system. I would, so, so you could use WebDAV, but I gotta tell you the way 100% of people who would interact with WebDAV will interact type of web dev is going to be by using a library or a package, right? Uh, you know, from, from PyPI if it's from Python, for npm if it's for JavaScript, and then you're just working with that package. You do not want to be dealing with low-level web dev APIs because web dev was invented back in the day, uh, when the main way people would do these kinds of APIs was XML. And you do not want to be in the business of having to edit XML by hand. And Xano is not very good at using XML because XML is from that prior generation. So there's a second thing in there that's called, and, and it seems like Nextcloud is, you know, Nextcloud supports that. Not clear to me that that's because it's old or because they just, or because they're like you say, it's a file storage. So a next way of looking at it is I think they have like an OCS API.
Yeah, that was, that's written here. Yeah.
And the, now unfortunately the OCS API is also based on XML. Now I will generally tell people who are looking at interacting with XML through something like Xano to do as little XML as possible by, you know, kind of like the reverse of what I was saying with, um, with Aaron, right? Where I was saying just let Xano do its thing, right? It takes things out of JSON, moves things back into JSON, right? It— JSON is Xano's natural language. But when you start dealing with XML, like, life gets far more complicated, is a more complicated data structure. It is much older, is not nearly as well supported. And so if you click into OCS, you're gonna find that it's also XML-based, although at least it is simpler. So if you really wanted to go down that road, I mean, I would probably look into using like a library or something if I were doing this from say JavaScript or from Python. And that kind of brings me to my recommendation, which is you don't wanna talk to Nextcloud directly from Xano. This, Xano is not the good tool for the job. Now, what, what I would do, if I were in your shoes, of course, coming at it from having a bit more experience with some, with these other techs, is I would say from Xano, you're going to go call like a Lambda function, right? You're like an AWS Lambda or Netlify function or what have you, which would have loaded up the libraries so that I can take a low-code approach and have my, you know, Python or JavaScript code communicate with Nextcloud using, you know, the interfaces Nextcloud wants me to use, but I would get the better ergonomics of just being able to use these libraries. Mm-hmm. Xano, because of the way it works all in terms of primitives, is very powerful as a no-code tool or a tool where you don't have to write literal code. Um, but it doesn't give you access to those libraries. Now they allege that sometime in the, reasonably near future, you're gonna be able to have a Lambda in Xano that will be able to make use of like NPM libraries that would then make this part of the job much easier. It doesn't exist yet. So if you were trying to do that today in Xano, my recommendation would be to, um, you know, make a third-party Lambda or third-party, uh, function as a service type thing, uh, to be taking care of that communication or be using some other bridge that you know works well with it. Or number 3, if you want to go be in no-code and you want to be doing file storage, I would look for a more no-code-friendly file storage service along the lines, say, Uploadcare or something.
Okay. All right. Yeah, I figured out a way to do it with Make, the Integromat. So probably I can from Xano then call Make and let Make do the, do the rest. Yep. So then I rather choose that way.
I, that, that's, that, that's what I do. Like find the intermediate point that works for you. I tell you, like I will routinely, even over things which do have more of a no-code approach, if there is a Make step or Make app or a, a Zapier action that will do that job, I would rather route it through those just so that it's not is not my problem to solve, right? That allows, you know, to allow somebody else who's putting a lot of money into that development to be the one that's backing that. And then I'm focusing my attention on the things that are, you know, more special about my application.
All right.
So I think your, your intuition of, hey, I could do this through Make, by all means do it through Make. And, you know, and in general, I look for ways I can offload problems rather than saying, how can I do more of this with Xano? Xanos at its best when it's acting, it's like, like you go to an orchestral conference, orchestral, you know, performance, right? The conductor has a different job than the violinist, right? Makes the violinist. Xanos the conductor. Xanos can do best at being a conductor. So allow the other tools do their jobs they do well. And then Xanos is about saying, okay, Mr. Violinist, now do your job.
Okay. Yeah, it's a job simple enough you can do it yourself. It, it makes sense from that point of view. Um, the— for me, the approach was like, okay, um, since Xano is supposed to be my new backend, uh, I would like to have as many processes in that one package as possible. Um, but yeah, I mean, if, if it's a difficult task, then, uh, I'd rather go to alternatives if for that task.
And then watch it change. I recently gave a talk on mental models for no-code development, and one of the things about a shopper's mindset, you're going to find that like the right tool for you today is not the same as the right tool for you, say, a month from now. You're not building something and I get to forget about it. If you're using no-code, frankly, that's just not true in tech in general, right? You, you will build and you build it again, you'll build again. And the, uh, what you're looking for is the thing that allows you to keep that wheel turning today. And then you're going to find that a month from now, maybe Xano now has better support for Lambdas that changes up, changes that up. Maybe there's another service that works. Maybe Nextcloud, you know, next release in the GitHub includes like a REST API that's easier to work with, right? All of these things could change. And finally, you can change, right? You could become much more skilled with some of these pieces that something that was a problem for you today isn't a problem for you, say, in September. So, you know, Take the approach of you don't need to be deciding the correct answer for all time. You're answering the question that works for you now. And all these tools are cheap enough and they keep getting cheaper that, that rather than trying to plan super for the future, you allow the future to happen and you're able to exploit the future cuz you kept that powder dry.
Mm-hmm. Good approach.
Okay. Does that, that give you enough to get started with? It sounds like you've got the make pathway and I would, I would definitely recommend you towards that.
All right, no, yeah, good for that. No, no problem at all. Um, I, um, yeah, I also tried to, to achieve the same thing with, uh, Google, like Google Drive, um, and it seems like because they have a normal REST API, that, uh, makes it a lot easier from, from, from Xano, I guess. But I, I actually haven't, haven't tried to put it in place, but I guess that would be a little bit easier. However, the way of my application, how it's supposed to work, is not working as well on Google Drive as on Nextcloud. So yeah, I'm probably going to work with Nextcloud somehow. That's fine.
That's, you know, that can be fine. And, you know, also open it up. Like, once you have two products that, you know, both solve your problem, throw both products into a Google search, and you may find that there's a door number 3, door number 4 that are interesting to you as well. Again, the shopper's mindset. But, but yeah, you, I think you've got a, you got a starting point. I'll let you go run the next mile on it.
Thank you, Ray.










