(Snowpal Podcast: Part 2/N) Salesforce: Anypoint Design Center, Anypoint Code Builder IDE

--

In this podcast episode, Krish explores the Anypoint Design Center and walks through the process of creating an API specification using RAML. He compares RAML and OpenAPI and discusses the advantages and disadvantages of each. Krish also troubleshoots and debugs issues in the Design Center, highlighting some inconsistencies and potential bugs. Overall, the episode provides an overview of the Design Center and offers insights into working with RAML and API specifications.

Go to Part 1.

Part 2

Transcript

Krish (aws.snowpal.com) (00:01.986)

Hey folks, welcome to Snowpal Software Development and Architecture podcast. This is podcast number two, two in the series of the Salesforce podcast. I guess I haven’t given it a name, at least I don’t know what name I would give it. So I’m just gonna call it the Salesforce series. The last one we kind of got started. I say kind of because if you’re, hopefully you’ve seen that one before you watching this. If not, I recommend you do that. There’s 20 minutes of me trying to figure out the lay of the land, if you will.

It was interesting, I think, at least to me. So definitely watch it just so you get some context to this, but we are really going to be getting started here. We’ve done just, we created the project in the last one, gave it a name, Snowpal Podcast was the name of the Salesforce project we created for the Anypoint Mule application or the platform it’s called. Let’s go look at that, right? Let me go share my screen and we’ll pick up from where we left off in the last one.

Okay, let me share. I think I figured out this desktop situation. So I’m gonna share my entire desktop. Okay, so we got as far as this, we said we need to, you know, we basically, let me move this to tab one. We created the project, turns out it’s an integrated VS code ID. Hopefully I can change it to, let me see if I can change the theme.

Krish (aws.snowpal.com) (01:32.056)

Mmm.

do I go to change?

Krish (aws.snowpal.com) (01:41.686)

view appearance.

Zen mode, editor layout

Krish (aws.snowpal.com) (01:52.578)

Center layout. Forget where the VS code, let’s see. VS code change theme to dark mode. File preferences theme, okay. File preferences theme, color theme. Light modern, let’s see.

Okay, that looks all right. So we are here and we just try to explore what any point, you know, when we’re going back to, let’s say going back to Salesforce, where did we start? We went to products. Oops, we went to products. We went to…

Krish (aws.snowpal.com) (02:40.554)

I’m going to MuleSoft.

Krish (aws.snowpal.com) (02:44.93)

Integration here, right? I believe this is where we were. No code integration and automation. MuleSoft Anypoint platform, right? Connect any data, app data or service with the MuleSoft Anypoint platform. I want to say that this is where we started. Not 100% sure because I just recorded that and it’s the first time I’d been to that page, but I’m quite certain. Okay, Anypoint extension.

And that’s what this reads as well, right?

Okay, so it says open VS code, find that from the desktop ID. So let’s go here, search for any pack extension, pack.

Has it already come? Any point code builder. And this is.

the Visual Studio Marketplace.

Krish (aws.snowpal.com) (03:49.422)

Well, that’s trying to open my Visual Studio locally, the Anypoint extension pack, but isn’t that what we have? Anypoint code builder, Anypoint. Let me just search for Anypoint.

I can’t seem to find it. Visual Studio. Yep.

It does look like we would need that any point extension pack. Does that mean it comes installed with this one? Extensions.

Krish (aws.snowpal.com) (04:34.362)

Oh, was there a filter that was turned on? I did not click that filter. Any point code builder, any point extension.

Krish (aws.snowpal.com) (04:58.606)

I want to say that these are installed clearly, right? Okay, so let’s assume, okay, yeah, this is probably speaking to the desktop ID. Did I click the, yeah, it’s probably, if you don’t have them, it says Anypoint extension contains these. Anypoint code builder, API extension, DataWeave extension.

Krish (aws.snowpal.com) (05:23.825)

API extension.

Oh yeah, DataVeeb extension. What else do we have here? Mule runtime extension. We got all of this. Yep, so it is installed because I was running the embedded the ID, the browser version. So we don’t have to do any of this stuff. So let’s go back. I’m going to close this. Probably only want to close that. It says, build an API from start to finish prerequisites.

Create a trial organization, which I believe we already did, right? We just created a trial org.

I don’t know why it’s taking me back there. Okay. It’s a little bit annoying when you hover over this, this big menu pops up all the time. Download studio, Eclipse based ID with rich functionality. So that’s interesting. It says any points to use an Eclipse based ID. So I guess when you download it, you get an Eclipse based ID, not so much the VS code based one. And then install advanced rest client. Okay. I guess we are fine pre-re…

I’m gonna ignore that. Okay, API specifications, explore existing API spec. So public exchanges, the portal hosted by MuleSoft that contains API specifications, connectors, and other assets you can download and use. So take me to exchange, any point exchange. Okay, so there are a lot of these assets, I believe. You know, many years ago, I did a tiny bit of work with MuleSoft. It’s not since then. So this…

Krish (aws.snowpal.com) (07:03.642)

looks a little bit like the AWS Marketplace. It actually says Marketplace for Connected Templates, but the AWS Marketplace probably is different as a slightly different purpose. This one looks to me like it is one of those API platforms where you have these other plugins and tools that you can leverage. The more and more I see it, the more and more it looks like some other things I’ve used in other places. Okay, cool.

Okay, so what are some MongoDB connector? So we need to build something with MongoDB. There’s a Kafka connector here. There’s a SharePoint connector. So I guess all of these are plugins. There’s probably a large number of them. Yeah. Is there a way to give, I would like to see it in a different way, not like a sort by.

Krish (aws.snowpal.com) (07:59.934)

I guess you can filter them provided by MuleSoft. That’s the only thing. Maybe other companies can provide it and publish it. Maybe you can have, that’s why you might have other user organizations or we create one as we go and we make that maybe public or just internal to our teams essentially, right? I just want to see a different view of this, like a flat list. It’ll be easy to understand what’s here. But I think we get the idea. There’s plenty of connectors.

Take me to any point platform back here. I have that open already. Create your API specification. It says take me to the API designer. Okay, this is a new page. And then we have the API projects. We go in here to the design center. Oh, we are back at the IDE. You know, the browser based IDE, I mean, it works when you’re collaborating and pairing, but otherwise it’s…

It feels already noisy to me. I actually would prefer for this to actually be a desktop ID. So when I do the third podcast here, you might just see that I’m not using the browser version, essentially. OK. So this is the design center. New servers.

Krish (aws.snowpal.com) (09:20.738)

Templates, root.

Krish (aws.snowpal.com) (09:26.158)

Okay, this is us modifying this open API spec essentially. So should I go here and then say components and then enter details? Okay, cool. We’ll not go into the open API spec yet. So that’s the designer. Let’s see what the example says. Create a new API specification. Create new API specification.

Krish (aws.snowpal.com) (09:59.982)

Where am I supposed to go? Take me to the API designer. That’s where we are at. Oh, it says create new API specification. What we have here is an API project. Okay, let’s copy this. It says give it a name. Enter hello world API. You know what, why didn’t we just follow? I was gonna do something slightly different, but let’s just do it this way.

Don’t change the other defaults. It’s gonna not go with the open EPS spec. I guess it’s gonna go with the RAML. Okay, RAML.

Krish (aws.snowpal.com) (10:41.214)

or the RESTful API modeling language. Actually, I have as much as we have like plenty of APIs, thousands of endpoints. I’ve not actually used RAML. Let’s see RAML example. Actually, why don’t we discover that as we show this.

Krish (aws.snowpal.com) (11:05.15)

Let’s just go through this and pick the default. Because it said pick the default, let’s create the API.

Krish (aws.snowpal.com) (11:18.566)

Okay, it has it here. Now it says, delete the editing text and paste in the following RAML. Let’s just copy paste it. And just one more time RAML acronym is RESTful API Modeling Language. It’s a way of describing practical RESTful APIs. It’s humanly, that’s readable by both humans and computers. Let’s do RAML versus OpenAPI. I’ve always used OpenAPI. So keep.

Documentations, our goal of RAML is to provide all the necessary information to describe the APIs. That’s providing a simpler way to design API. So OpenAPI, if you don’t know, it’s a specification, whether using Postman or other things, you can export your collections as OpenAPI or create them as OpenAPI from in specs, and then publish them to different platforms. This is what we do at Snowpal. But it looks like there is another way of doing it, which is RAML.

which essentially is a RESTful way of doing this. We will take a look at this because that’s the default we’ve actually picked here, right? So let’s keep going. Now that I hit, I copy pasted this section. Let’s look at, let’s see if there’s a RAML editor so that we can actually see this slightly and slightly better UI. Okay.

Krish (aws.snowpal.com) (12:43.182)

install anything. RAML online editor

Design your API, raml.org, try it out.

Okay, yeah, let’s do this, right? Let me just copy paste what I had over here. This is, let’s see, hopefully it’s big enough for you to be able to see this. It’s got a title, it’s got a version and a description, types, greeting, properties. So there is a greeting endpoint, it’s a get request. It returns 200 or a 404, 404’s page not found.

200 is when the status is okay. It has a body and it says it’s gonna return this. So let’s actually try running this request. So I guess this, there must be a mapper between OpenAPI and RAML. So I think to me, OpenAPI reads just fine as well. But I guess if you prefer this format, this syntax, then you could just do RAML.

So greetings to the endpoint. This is a very simple endpoint. Let’s go back to our page one here. There’s not much more to talk about this endpoint. Now it says open testing and specification. Let’s see, what do we need to do to test it? Take me to the API designer. Okay, I don’t wanna keep clicking the same thing. Open the RAML file if it’s not open. Yep, in our case, the RAML file is open. Still have to understand we were on a particular

Krish (aws.snowpal.com) (14:21.414)

ID before, but we are in a different place altogether. Now we are on the designer. So I believe this is the design center and we created the Dramal file and let’s actually try testing it. Click the documentation icon if the panel isn’t already open. It says, yep, okay. We click the documentation. And then I guess I hit get here and then try it.

Send the request. Okay, you see there, right? It says today’s greeting. So this is the request URL. Let’s copy the request URL. So that’s the whole URL resources, projects, I guess the project ID, blah, blah. And then greeting.

Krish (aws.snowpal.com) (15:13.194)

no organization ID header. So let’s go back here. There’s probably something on the header. Let’s see where the header is.

Let’s see, there’s no query params headers.

Krish (aws.snowpal.com) (15:36.786)

Okay, I’m getting the getting a hang. I’m going to do, you know, share my feedback as I go as I discover more of what this, you know, my personal opinions of what I like what I don’t like, you know, just again, just sharing my two cents along the way. While we learn and discover this. I only have, you know, sometimes you come with these, you know, preconceived notions and opinions. I’m going to try and not

influence you with that when it comes to these tools. The ones I’ve seen are the ones I have not seen. But you know, we have these unconscious biases. We like certain tools, we like certain methodologies and approaches, and maybe not the same with other tools. But promise you I’m gonna go with an open mind and tell you why I might recommend one versus the other or where my inclinations are, just based on my experience, right? Right now the problem I have is it’s not showing me.

the header because you know when I copied this URL and I made a get request, I was expecting for this to work, but it did not. That’s because there is no organization. It says there’s no arg header, which means when this request is being actually, it’s like so many. Okay, let’s just do an inspect here. And then let’s just go to network. Let’s clear everything.

Krish (aws.snowpal.com) (17:03.526)

clear let me just say hit send request and we send the request you go to the header request headers this is the URL

Request header. There’s app authorization header. I bet this was not there, which is why that request did not go through. Let’s do something here, right? Let’s actually open Postman.

Krish (aws.snowpal.com) (17:47.374)

Create a new blank collection to test.

Krish (aws.snowpal.com) (17:54.926)

It’s actually interesting I’m opening Postman because Insomnia used to be my favorite and the tool I use for graph and rest. Off late I’ve run into, it just doesn’t feel the same like it was like many years ago when it was built by a single developer. So losing my affinity or love to Insomnia, I’m using, I’ve seen myself using Postman a lot more, which it’s the most popular API tool out there, so why not?

Okay, so I create a collection. Let’s add a new request. I’m just gonna say, what is it? Any point.

tweeting, right? Or tweeting number one or something like that. I’m gonna copy the URL here. Just gonna run the request and we’re gonna get the exact same error that we got. We’re gonna go to the header. What we’re gonna do, we’re gonna copy this value, app-authorization is the key.

app authorization.

Krish (aws.snowpal.com) (19:00.598)

And let’s try to make the request.

Krish (aws.snowpal.com) (19:07.666)

No, oh wait a minute, there’s a different organization ID.

Project arg ID, MS2 authorization, blah, blah. Let’s actually take this one. Maybe it’s not this. Let’s take that ID and let’s copy this. Maybe it wasn’t that in the URL as well. No, maybe it’s 6AA something else. Okay, let’s try this. No auth header. So we need the auth header as well. Maybe it’s that one. Maybe not.

Krish (aws.snowpal.com) (19:43.166)

MS2 authorization, it has a better token. So we can actually go to auth, we can pick a better token here and then we can use this entire token.

Krish (aws.snowpal.com) (19:58.093)

Oh

Do I need?

Krish (aws.snowpal.com) (20:06.89)

Let’s actually do no auth here. Let’s go to header. Let’s put the value and let’s just go MS to authorization.

Krish (aws.snowpal.com) (20:19.398)

Okay, there you go, right? But hang on, why did that not work? The MS2 authorization, we use the Barrett token here. Use the Barrett token.

Let’s see.

Is it because I’m trying to think this should have also worked? Let’s see. Let’s try to debug this a little bit more. Start proxy runner, cookies online. The authorization will be automatically generated. It’s not the GWT better. Wonder.

what the difference here is, because we should have been able to do this as well. Let’s actually look at Postman Paratoken example. Okay, let’s go here. Paratoken. Yeah, see, Postman up in the value and blah, blah. So your API key.

Barrett token enables request authenticate using an access keys, just jw. So you can use the JWT token, but this one should be the Barrett token. Let’s see what was, sorry, I’m mumbling a bit here, but let me go back. Let’s look at what we put MS2-authorization. That’s the name of that, which is slam. I’m trying to jog my memory as to whether.

Krish (aws.snowpal.com) (21:55.222)

this place at all because this is a specific header that they’re expecting. So if you want to send in any point to request, not as a header, but using the auth, what would be actually used? But there’s basic auth, obviously that’s not it. Digest auth, auth one, API key, key name and value. Actually, let’s try API key. Let’s try MS to authorization.

Let’s pick the value.

Krish (aws.snowpal.com) (22:35.978)

That works, right? You saw that because we uncommented this, it would have otherwise failed, but then this is an API key, right? It’s even though it’s a little bit interesting because even though it says bear, structure looks a tiny bit different to me. So you can make this request as an API key, and I guess Postman sends it with a key name and as a token, because if it’s a straight up bearer token,

API, bearer, token, key name.

Krish (aws.snowpal.com) (23:15.966)

Yeah, it should be, it’s gonna send the request this way. Right, allow all cookies. So see it says, the name bearer authentication can be understood as give access to the bearer of this token, the client must send this token in the authorization header when making a request. That’s what it was, right? If it’s a bearer token, you have bearer, but then the key is it’s authorization header. But in this case, the header was not authorization, it’s a custom header that they have, which is, let me, where’s mine? It’s a custom.

this down, a custom header. So it has the name of the key as MS2 authorization. Like in our case was snowpal, we have our own authorization keys. And then you pass that API token and you’re able to make the request. So what we have done here is we took what we were going, what we were doing, you know, through the designer and taking it to Postman because it’s actually much easier to do it using a tool. Again, this is where personal preferences might play a role.

Tell me what you think, right? Do you like to do it using an API tool? Or do you prefer to use it through these designers? Now again, these designers do add some value because they are integrated. They, you know, you log in, you sign in and you have all of them in one place, but they still open up multiple tabs. So you have a proliferation of tabs. You can group those tabs on Chrome. You can just say add to a tab group and you’re gonna say new group. You can say any point. And then, you know, we can move this.

Krish (aws.snowpal.com) (24:48.682)

and time to

Krish (aws.snowpal.com) (24:53.43)

any point and then I can move these ones inside as well. Here’s when you move the first one. So now it becomes a tab and you can, you know, you can collapse and expand, just use the Chrome functionality, right? But sure that works, provide some structure, not the whole nine yards. So here what we’ve done so far, we’ve created a spec, you know, a RAML specification. We gave it a title, we copy pasted, we get title, name and a description.

And I’m sure there’s a way to convert this. And I don’t know what support for other platforms is. Can I take Rammell and publish? Because I’ve not seen API platforms accept Rammell as a standard, but maybe they do. I don’t know how open the standard is or how supported it is on other platforms. With open API, you can be pretty much guaranteed that most, if not all, of the platforms are gonna support it. So therein lies that difference. Hopefully I’m recording. Was I being talking?

Yep, I think it’s recording, I hope it’s recording, yep. And then we, you know, you can compare and contrast this to an open API spec, which isn’t the easiest to write. You know, a lot of times we have scripts that we, you know, we generate open API specifications for what we do. And I’ll show that to you as we go in this experience of podcasting. But remember that, you know, you may take a liking to one format or the other.

and then you go with it. It’s hard to say that what you like is what everyone else is gonna like. That’s why there’s multiple options. Just make a calculated judgment here and go with the one that’s more common than the other. The fact that I’ve, you know, we’ve published 80 APIs with thousands of endpoints at snowpal and I started to look up the acronym for RAML says one of two things. Either I was just uniquely ignorant about it.

or I just haven’t found the need in OpenAPI, just worked well enough that we didn’t need to do it slightly different way. Anyways, that’s at least my two cents there. So we ran the request and now it’s actually, let’s talk a little bit more, right? So it created this mock response. Where is this actually coming from, right? Where is this response coming from? So let’s say I change this test greeting response to, hello there, right? And then I…

Krish (aws.snowpal.com) (27:16.098)

hit this request, it says hello there, right? So I didn’t have to publish. Let’s see what publish, publish probably makes it public. We’ll see what that does. I’m pretty sure that’s what it is. But by virtue of me just making the change here, you know, this is the mock response is being generated from here, right? As you could see, we changed that. And then if I add another bang, and then I go back here, it saved, it took a second to autosave, and then, oh.

Krish (aws.snowpal.com) (27:53.398)

Interesting.

seeing that.

Krish (aws.snowpal.com) (28:05.486)

What’s going on here? Where is that coming from?

I made the request, it still says test greeting.

is it as good? It’s hello there now. This is a bit strange. You have two banks here. As we can see it’s two.

Krish (aws.snowpal.com) (28:31.63)

Oh, I’m seeing it on and off. Hello there, hello there, test greeting, hello there. That’s, I have to understand this better. Where is that data actually coming from, right? It’s a mock response. I was presumptuous, I was under the assumption that changing the example here, okay, let’s see.

Krish (aws.snowpal.com) (29:02.862)

Should have required property today greeting because the properties there is today’s greeting. So I have to add a G here. Okay. Then I’ll remove, I’ll add an extra bang. So there’s three bangs and then today greeting with a second G. I go here. This shows hello greeting and test greeting on and off.

So let’s undo some of these changes and make a request here. I’m wondering, you know what, let’s try and go ahead and publish this version one development, publish to exchange, saving a new version.

Krish (aws.snowpal.com) (30:05.986)

That was probably, we’ll have to look up what publishing to the exchange means and where to go see more details about it, et cetera. This is if you’re wanting to collaborate with somebody, right? Okay.

I’m gonna think here.

Krish (aws.snowpal.com) (30:26.062)

use mocking service without authorization header so they do have some option there mocking service configuration local settings what i’m still curious about is where is this value actually coming from

Krish (aws.snowpal.com) (30:48.022)

Let’s make the request. Oops, let me go here.

Krish (aws.snowpal.com) (30:55.086)

Go back, go back to network. Let’s make the request again.

Krish (aws.snowpal.com) (31:17.902)

OK, BCS project 6A, blah, blah. That looks the same. There’s no difference there. Let’s look at the project IDs one more time. The authorization is 9911. Let’s go to here. Yeah, that’s the same thing. And then the project org IDs 422 and ends in cce. That’s pretty much the same. So why?

Am I not getting hello there with two bangs?

Krish (aws.snowpal.com) (31:59.661)

Trying to understand what I’m missing here.

Krish (aws.snowpal.com) (32:06.934)

We published it, not that we had to, but we also did publish it. Response details, source view.

Krish (aws.snowpal.com) (32:17.43)

Let me copy this one more time.

Krish (aws.snowpal.com) (32:23.214)

That’s not going to change. So trying to think how to debug this actually further. Where is this even coming from? Let’s see.

Krish (aws.snowpal.com) (32:41.942)

I removed the whole thing.

Krish (aws.snowpal.com) (32:48.322)

That still doesn’t work. Okay. Let’s try a different endpoint, right? I’m just not that I knew how to do the ramble stuff, but it looks pretty straightforward. So let’s just copy this whole thing. Let’s create a new endpoint. Let’s call it greeting one, right? And then this is gonna be.

Krish (aws.snowpal.com) (33:10.542)

Tomorrow’s greeting. Hello there again. And then we’ll take this tomorrow’s greeting.

Krish (aws.snowpal.com) (33:22.514)

it a string.

Krish (aws.snowpal.com) (33:29.006)

Should have required property today’s greeting. Oh, okay, if I put in the wrong place, let’s take this. Let’s copy paste this. Let’s remove this from here. Remove that from there. And then type is greeting. We’re just gonna call it type is greeting one as well. Apologies for these poor names. Yeah, we just split that. We have two types now, greeting and greeting one, today’s greeting and tomorrow’s greeting with the properties.

So this is not complaining. We’ve done, as you can see, we didn’t know Rammel, but we just learned it as we go, right? By example, it’s much quicker than going to, to read Rammel specification, and you can spend as much time as you need trying to understand this. If you like to do it, sure. We do it a little bit differently at Snowpals, which is why our courses are much like this, right? Except that,

Courses are we do solve the problem and then come share how we did it with you and sell it for like the cost of less than a cup of coffee. I think at Starbucks, less than a drink like five bucks or something. But that’s the idea, more pragmatic teaching, not so much theoretical teaching from page one or the book of the book to page, the last page of the book, nothing wrong with that approach, just not the way we do it, yeah. Okay, so let’s see, greeting one is the next one, right? So let’s see when you go to try it.

How do I, I go to greeting one. What does it get? So this is the UI, as you can imagine, I’m right now on my laptop, we have a larger display. You have a bit more room to doing this, but I have my two cents and opinions as strong as they are about such tools. We’ll talk about that shortly, but let’s go get it. Go try to ascend. Hello there again, right? Okay, now let’s copy this.

Let’s go here. You still haven’t figured out why there’s discrepancy here. Let’s go, oops, I copied one too many times. I’m just gonna go here, call it two.

Krish (aws.snowpal.com) (35:42.102)

greeting one, nothing changed except, we’ll put all this in an environment variable and make this a little bit cleaner as we go, but it’s just greeting one, there’s no other difference, the header is here, so let’s just hit send, provider trying to find greeting one.

Okay, why so let’s see, let’s see what the request should look like. We’ll do one more time. Go back here, hit send. Works, it’s creating one. Wanna say we copied this whole thing. Shouldn’t be any different. That’s exactly the same. Okay, it says error trying to find resource. Let’s go down here, get the project org ID.

Sorry, authorization is F of two. Project arg ID ends in CCE. CCE, that’s the same thing. So there should be no difference.

error trying to find greeting one.

And we don’t have greeting two, resource not found. Same error, resource not found, whereas with this one.

Krish (aws.snowpal.com) (37:07.542)

Hello world and then test greeting.

It’s a bit bizarre. Doesn’t add up for me because why is this any different? I should be able to see the exact same experience should be exactly the same. OK, for what it’s worth, I don’t think all of these other headers might even be needed. But why not?

Just for sanity’s sake, let me put that. Pretty sure it makes no difference.

Krish (aws.snowpal.com) (37:52.146)

Oh, wait a minute, there is a bit more consistency here after I actually added the owner ID.

Krish (aws.snowpal.com) (38:05.85)

Oh, there you go. Okay, so the project owner ID is needed. If you don’t have that, it behaves differently. So, I mean, you cannot conveniently choose which one. I’m pretty sure if you read up the documentation for project owner ID. Let’s Google this.

Krish (aws.snowpal.com) (38:24.762)

MS2 for Microsoft. Interesting. What is the history of Anypoint platform?

Krish (aws.snowpal.com) (38:37.151)

Any point.

platform any point ID Any point sorry about those digers. I’m just curious any point platform

Krish (aws.snowpal.com) (38:52.486)

It looks like it’s coming from MuleSoft. I’m just curious why the header’s got a MS2, like if it’s MS, if MS stands for Microsoft, maybe it doesn’t. Let’s see, maybe it does.

Krish (aws.snowpal.com) (39:19.042)

Trying to see.

Krish (aws.snowpal.com) (39:24.042)

Yeah, if you know it, please share this. So once we do that, we see some consistency. Let’s go back here. So I’m sort of hello there again, let’s add a third bang. And then it takes a second to save.

Krish (aws.snowpal.com) (39:42.438)

in the right place. Yeah, greeting one. Greeting one. We’re going to greeting one.

Krish (aws.snowpal.com) (39:53.181)

Send it.

And then we see the three bangs there, but we do not see the three bangs here.

Hmm.

Krish (aws.snowpal.com) (40:10.488)

I’m publishing it.

Krish (aws.snowpal.com) (40:20.018)

I don’t think publishing should have any bearing on why this data does not change here.

Krish (aws.snowpal.com) (40:32.206)

Hello there, hello there again. Okay, let’s change hello there to three bangs. Let’s go here, go to greeting. Let’s see. And then we’ll hit try it, send. Then you’re gonna see three there. We’re gonna go back here, hit send. Nope, we don’t see three bangs. So.

When we change the RAML file, we see the data take effect immediately and then the request does not look any different. Let’s see, let me go back here. Now that we copied all the other IDs, the main file, which I don’t think, okay, let’s make sure that may not be presumptuous and be wrong one more time. Let’s go here.

Krish (aws.snowpal.com) (41:33.422)

which is a better way to do it. We can actually go to a bulk edit. Now on the laptop, it’s a little bit trickier because these windows become tiny, but there’s a bulk edit. You can go here and copy the whole thing. So that’s much.

little bit more efficient we are doing this

Krish (aws.snowpal.com) (41:57.069)

Oh.

Maybe, let’s see, let me add hello there again, back to one bang. And then hello there is also, maybe hello there will be two bangs. So this should be two.

Krish (aws.snowpal.com) (42:19.498)

Oh, it is two and now this is one. Well, well, okay, let’s go here. Let’s put a dollar sign. It saved it. Oh, wait, hang on, let me make sure. It takes a few seconds for that to save. Oh yeah, that’s okay, that’s how it is. Yeah, so it just takes, you know, make sure you save it because sometimes there’s a star here telling you haven’t saved it and you have to, I’m hitting.

Krish (aws.snowpal.com) (42:51.246)

Is it not? Did it save it?

did not.

Krish (aws.snowpal.com) (43:09.486)

Try and click Apple as to save. I don’t think I had to do anything to save.

Krish (aws.snowpal.com) (43:27.578)

and change. Am I on greeting one? Yeah, this is greeting one. Let’s try to send the request.

Krish (aws.snowpal.com) (43:39.438)

What happened there?

Oh, strange. I didn’t think I unselected it. Okay, getting one. Try it.

Krish (aws.snowpal.com) (43:57.622)

This doesn’t pick up the change I made here.

Doesn’t make sense. It says two minutes ago, so it’s not saving these changes.

Krish (aws.snowpal.com) (44:15.234)

See, you saved two minutes ago, but…

Krish (aws.snowpal.com) (44:19.922)

Okay, now we changed it and now this tower went away and I’m pretty sure, yeah, there are discrepancies here. We may have run into bugs with this designer. I’m pretty sure we did actually. This is part of the problem with some of these tools and designers. They are not as predictable as they should be. Right now, this is, an endpoint such as this should take two minutes to implement really, right? Because it’s the world’s simplest, it’s a hello world endpoint for all we care.

But I am noticing some anomalies here. If you’re an Anypoint Design Center expert, and if you think I’m doing something wrong, certainly let me know, I’d be more than happy to know what it did differently. But it’s not saving it, maybe at times, because I tried to save it, it is an auto-save, it said it saved, but it didn’t get picked up. And I noticed that it actually had the star next to it indicating that the save did not happen. But the MS2 main file looks like that.

you need a point of this ramble. This header is clearly needed. If not, it was not working. But it still got the response back. We saw the greeting, but it didn’t do it consistently. So I want to say that doesn’t look correct. Either it should work or shouldn’t work, but it cannot work midway because you didn’t have a header. So I’m not convinced that is actually correct. Let’s see how far into our recording we are at this point. Right?

Wow, we are 45 minutes in. I think this is a good point to pause. I think we made some progress compared to the first, at least compared to the first podcast in the series, right? We’re talking about any point design editor. We looked at it, we’ve created, we understood what RAML is, REST API specific markup language, right before I say the wrong thing, RESTful API modeling language. Remember I said earlier, sometimes you can use.

expand acronyms not so correctly, it’ll still come across correct. This is one of it, maybe, maybe not. And also we saw RAML, we took the example, we created the greeting endpoint, ported it over to postman, picked up the headers, the authorization header, notice that it’s an API key, it’s not so much an authorization, even though it had the barter token, which seems a little different, a little bit unusual to me if you ask me, but I guess it’s okay.

Krish (aws.snowpal.com) (46:43.818)

And then we saw, we ran the request, we saw the discrepancies because I had not copied over all of the headers, but it actually did work with the headers being incomplete. And then we added more headers. We actually went to three of them. And I think we’re coming closer to some sense of consistency except the fact that the same was not happening accurately, right? So that’s what we’ve done. And then we’ll keep chugging along here, right? So this is two off and the any point or the sales was any point.

exploring the designer series. We’re gonna look at a number of different things in the series of podcasts. So hopefully you enjoyed it. If you have any questions, if you want me to do something slightly differently, let me know, I’d be happy to do that. Before I end, remember to check out our APIs on saas.snowpal.com or aws.snowpal.com. You know, building mobile apps or web apps or microservices. And if you’re spending time…

standing up back in systems like building, implementing, testing, scaling, and deploying, then maybe you’re spending your time where you don’t have to solve your core customer problems, leave the rest of the back and heavy lifting to us, right? Talk to you later, thank you.

Go to Part 3.

Snowpal’s Products:

--

--

Varun @ products.snowpal.com | learn.snowpal.com
Varun @ products.snowpal.com | learn.snowpal.com

Written by Varun @ products.snowpal.com | learn.snowpal.com

I am a Product Engineer at Snowpal. Subscribe to our APIs to reduce time to market for your web, mobile, & server-side apps.

No responses yet