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

--

In this podcast episode, Krish continues the discussion on the Salesforce Anypoint Design Center. He starts by recapping the previous episode and addressing a timeout issue. He then explores the process of publishing API documentation and compares the RAML and OpenAPI specifications. Krish also demonstrates how to access and customize the public portal. He explains how to enable and disable the portal and shares assets with team members. Finally, he provides feedback on the Design Center’s user interface and concludes the episode.

Go to Part 2.

Part 3

Transcript

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

Hey there, welcome back to Snowpal Software Development and Architecture podcast. This is podcast number three in the Salesforce Anypoint Design Center series, as I’m just casually calling this. We looked at a number of things in the previous podcast. If you haven’t seen that one, definitely go check that one out before you watch this so you have some context. We created a new project, a simple one, use the example to create the very basic endpoint.

recreated the endpoint on the Anypoint Design Center and recreated that on Postman. We ran into a few issues. We went past those issues, understood how EPIK, the header worked, what the headers were, ran some commands and made some progress essentially. So we’re gonna pick up from where we left off. So without further ado, let’s just jump right in. I’m gonna share my entire desktop here.

Okay, now let’s continue. We were here at the design center. What happened was it timed out, so it kicked me out. And I ran the request on Postman, it actually did not go through. So the only thing I did since the last recording, I had actually done a recording since, but it wasn’t great, so I just deleted the recording. So I’m redoing the last five minutes or so, right? The only thing I had done in those five minutes was

there was a timeout issue, so the token expired. And then I had to go back and modify and update this. But instead of doing it here manually, I just went in and created an environment, called it like a test any point. And then I added the authorization variable. And then the new value that essentially came from, you know, if you remember from the last one, I just went here, go to network, actually look, I made a request. Let’s say we go make a request.

And then I went to greeting, took the MS1, sorry, MS2 authorization header, and then made that an environment, right? That’s it, just for convenience. Once it’s done, I was able to, I’m now able to make these requests like we were able to do it before, right? We get the data back and we are back to where we were at the end of that last podcast. Now, the only couple of things before we continue, I’m just recapping quickly what I had done in those five minutes and I’m re-recording essentially, right? I click share here.

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

Actually, no, I think I’ve published it. Just one more time, just to make sure the latest and the greatest got published to that exchange. And now let’s see what that means, right? Publishing with Exchange, because we’ve not seen what that means once it’s published. And on the last podcast, we actually clicked Published a couple of times, but we didn’t hit this link here. And you hit that link, it basically takes you to this page.

which looks much like the swagger pages for instance, right? But you’re publishing your API documentation for your internal or external teams to consume. So you can see the greeting, you can run the request here, and you can maybe hit send, and then you see the response come back, right? It’s stepped out essentially. And you can download this as OpenAPI spec, and I actually did that. When you download that as OpenAPI spec, you now see, let’s say I open this in Sublime.

this is open API specification, right? And as you can tell it, the RAML version is different because it’s the yaml as a JSON, but it is otherwise it’s very similar speaking languages. Right? It’s not spec itself is not, it’s different, but not dramatically so. And then what I did was, what we do is let’s say we copy this swagger, right? And then we go to, I don’t know, I’m just gonna open a swagger editor.

And then what we’ll do is, yep, I had already done this, that’s why you’re seeing it here. As you have seen the pet store, and I just replaced this with, oops. Yep, and essentially it gives you the Swagger representation, the OpenAPI representation of this. That’s basically what it is, right? You create, we created that in RAML, which look again, very similar. And now we have the OpenAPI, and we had the OpenAPI JSON version, and this is the YAML version.

But if you took the YAML version and actually compare this side by side to RAML, I wonder how different it’s gonna look. It’s gonna be like title, info description and path. We have the same type of things here. Well, it starts with a slash greeting. Here there is paths and then you have slash greeting and then you have something called a get request as opposed to, I mean, let me even copy this, right? Just so we see it side by side.

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

It’s gonna complain because it’s not open API spec but just to compare and contrast. Greeting one, you have get, it says produces instead of responses and then you still have responses. You have it in single codes. You have it without the single codes here. So you can see it, right? The open API version is a little bit more detail as more stuff. And I’m sure even ramble as we dig deeper, it’s probably gonna have them.

So they are very similar looking. You understand how to write one or read one. You understand how to read or write the other.

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

Delete the wrong one? I don’t think so.

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

actually. Okay for Sandy’s sake let me go open Sublime Editor. Oh I think it’s because… Okay.

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

No, that should be good. That might be, yeah, that’s one more. We’ve run into bugs along the way already, right? So some open, sorry, the any point bugs. This is just a swag editor issues, what it looks like. Okay, so you get the idea. So we are able to edit that just fine. And then what we did was we…

Krish (aws.snowpal.com) (06:17.17)

Okay, and then when you hit share, you can publish it on the portal. And then I just hit save. And then I right-click here and open Exchange Public Portals. Here, there’s a couple of things to note. You can enable or disable a public portal. Now by default, it appears to have been enabled because when I run this request, the whole status request, I replace the domain, our domain as I found out for our project, the snowpal-inc.

It is enabled. Now, if you want to disable it, they have a few options. You can actually run this command, which is basically doing a post request to log in using a username and password. It gets you the access token. Now, I created a tiny script to get the access token. So let me run it. That’s the access token. And now, let’s say we run a subsequent command. It’s a post request to enable or disable it. So let’s say I go here.

Let’s say disable. I’m pretty sure, I didn’t see it. I’m sure it’s disabled because other one is enabled. Let’s run this command. Could not find, oh, hang on. I did not replace the Arc domain. So it’s actually, let’s export it. So we don’t have to keep running it. Export Arc domain equals snowpal-inc. And now I’m gonna run this.

could not find our organization. Oh, hang on, I need the dollar sign here and the dollar sign here.

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

Okay, that’s disabled. So let’s go back and run this request again, the one we checked earlier. You can run this from, let’s do it.

Krish (aws.snowpal.com) (08:11.927)

Okay, dollar or domain.

Krish (aws.snowpal.com) (08:18.19)

see that it’s disabled. Okay, let’s go back and re enable it.

Krish (aws.snowpal.com) (08:26.762)

and it’s enabled back, so we’re good. So once it’s enabled, it says customizing and the portal settings. Before we do those customizations, what is it saying? Access the public portal. How do I access the public portal? What is the URL to our public portal? So we enabled and disabled it. I wanna see what the URL to the public portal is. So I’m here, it is public.

How do I get the URL to this public portal? Search for content, assets. It’s gotta be somewhere here.

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

It’s not telling me. Let’s see. It’s gonna have, just looking for the public URL for this portal. Let’s see, hopefully this is, if you have Exchange Admin or Organizational Owner Act so you can customize this portal, blah, blah. Forget about pub. Let’s say, now we need a custom domain, we would do something like this.

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

But before we go to the custom domain or make any of these types of changes, just wanna get to all public portals enabled by default as we found out, can sign into your portal view assets and share new assets, no required authorization. If you do not want the portal to be publicly shared, you can manually disable it. Let me copy this. I wanna go to an incognito window.

Nope, sure it’s asking me to sign in. So let’s figure this out.

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

That is interesting. I would have expected that to be, before we go to customization, now that we have enabled it, disable it.

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

Hmm. More asset. Manage public portal resources.

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

essentially trying to see how we can see a public version of this particular. Oops.

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

Let me just copy the URL partially. I doubt it’s going to make any difference. Of course, it doesn’t even find it. API minor version console.

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

asking me to sign in. Let’s try to figure this out.

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

downloading it search for content

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

API instances, summary. Okay, let me go back on page here.

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

Oh, hang on. So I went back out, these are my assets. I went back out, I see public portal here. Now when I click that, it takes me to this URL, but it’s empty. So let’s customize this. Oh, this is probably what it talked about customization. But before we customize anything or add any content, my applications.

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

see any applications.

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

Let’s see, I’m gonna copy this, go to an incognito window.

Okay, that’s better. So it does show something.

Krish (aws.snowpal.com) (13:16.434)

Okay, just trying to get rid of these choices, but I cannot seem to get rid of that. Let’s see, let’s figure out why the assets are not showing up here. Maybe there is something here, the asset is here, and we did make it enable just for sanity.

Krish (aws.snowpal.com) (13:39.458)

Yep, it is enabled. Maybe it’s in development. Let’s make it. Do you wanna promote it to stable? It’s not reversible. Change lifecycle state. I doubt.

Krish (aws.snowpal.com) (13:58.402)

From depth to stable releases to deprecation, I have to believe that even development would show up, essentially, I cannot see why it wouldn’t show up.

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

How do we add the asset to a public portal? My applications, there is nothing here. Settings, add new category.

all of the assets snowpal include this asset

Here.

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

Let’s just make it stable. I doubt it’s going to make any difference, but okay.

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

Oh, it did make a difference. Okay, go to it.

So that’s interesting. It looks like you have to promote it. So it’s public because right now I’m in an incognito window and I’m seeing this, which is all right. But what if I want to socialize this with my, with the team internally, without actually making it public? How do you socialize this with your team? I guess the way you’d socialize it with your team is by actually not publishing it, but by collaborating with your team members. That’s probably it. It says,

and you share an asset, you’re sharing all its properties, yada, yada. So you don’t make it public. You just share it with your team members so they can use it. But the only time you make it public is when you are socializing that with the larger world out there. Sure, make sense. Now we go to this portal, and now you see these actual commands. Anybody else can access this from the outside world. So what we have done so far is just

not really written any code. We’ve just done a bunch of click, right? Which is probably why it’s low code or maybe what you’ve done so far is like no code maybe that you’ve created some specifications. We’ve been able to stop it out and publish it so the team can start consuming it. So if you’re a UI user interface team, you can imagine or an API team, you create this, make it available. So your UI team, your mobile app teams can start working against this specification. Now let’s go back here. So we’ve gotten that far.

Let’s look at customization as well now that we were there. Now if I refresh this, it’s going to obviously show it here. Let’s see customization. Let’s go back here to public portal. Go back, I think, here.

Krish (aws.snowpal.com) (16:45.87)

customize. OK. I guess we could choose a logo. I’m just going to choose.

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

I love you.

So somewhere here, it’s on a different machine, but you know what?

Maybe it’s not here.

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

Okay, it’s too large, it doesn’t matter. So, yep. So you can pick a logo, your fab icon, and then let’s say we change the color. You can see that it takes effect at the top. Make some more changes. Text color is probably just fine maybe.

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

Okay, you can change your text. Welcome to Snowpal Dev Portal, backend as a service.

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

Okay, and then take the color, and then we’re gonna just say done editing, publish. And then we come back here to this incognito window. And then you see the difference, right? We changed the, that is it, we changed the text and did all of this stuff. So now a lot of the tools support something like this. I’ve used a few tools myself. So this is, you know, MuleSoft’s version of it, right? Does, I mean, my initial feedback on how this, you know, the whole experience is.

Is it, does it feel very current? I don’t think so. To me, it feels pretty dated. But it does the job, so if you’re using it, probably it’s fine. So what else? We saw the design center, we created this, we stopped it out, and it says edit the spec if you wanna make further changes, and then you can share with your team, publish it.

use RAML or other formats if you, you know, whatever you wanted to. I guess our guide is here as well. And then we publish the portal for other teams to consume. Now they can start, you know, somebody can go here, start calling these endpoints either through Postman or through the web. Pick the version when you have more than one version published, it’s gonna show up these multiple versions. And that’s basically it, right? And I guess it points to this mocking.

service that generating these responses. Let’s see if there’s anything else we can actually look at from a use mocking service, some basic configuration type of things. This project errors, if there are any errors to show, we don’t have any, so we are good. I think that’s dependencies. I think we didn’t create any of these other things.

publish a new version. I guess this is just, we can do the same thing. I think we can click here or click here, I guess. That I think is as far as the design center is concerned. I’m not seeing anything else. Let’s see, we got some usages. Okay, I guess they need some permissioning, et cetera for usages. Let’s go back to Snowpal. That’s not the one, is it?

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

Yeah, that is not the one. It’s basically the Hello World API.

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

Okay, now I guess you can add more files, different types of files, and you can check this out essentially. They have a few other options. They have support for at least two formats. Given how popular Postman is, I’m actually surprised it doesn’t have Postman format here. Or maybe, I don’t know, we should check it out. You can put a collection and see what happens. Yeah, maybe it works. And there’s some UI.

that they provide some help for you to actually write this if you wanted to use the interface. But I don’t know to be honest, how easy it is to use these types of interfaces. If you’re used to it, you can use it. Otherwise it’s probably easier to write it or use a bigger editor. To me, the problem is there’s too many pains here. There’s too much, not, there’s a real estate issue, especially if you’re on a laptop.

But at least we could get it done now. You know, if you have a bigger spec, how difficult it is to actually do it. I don’t know if we can actually also export OpenAPI to ramble. I’m sure there is a tool out there. I just haven’t seen one, given that I only learned of ramble in the last podcast. Now you can, when you bring a larger spec that’s really long and something that’s real, not like a two end points simple hello world spec, managing this could become rather cumbersome, right? You can imagine how this thing is gonna grow.

in this UI, I leave it to your interpretation. It is what it is, right? From what you can tell. Let’s see how long we are into this particular recording.

Yeah, we’re 20 minutes in. I tried to keep the podcast to a half hour. Some of them are pretty long and some may be a little bit shorter. This is my new attempt at trying to keep, maintain a sense of consistency, but I don’t wanna like, you know, manufacture the consistency or make it contrived. To me, this seems like a good point to end this podcast. And then look at something else outside the design center.

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

in the next podcast, right? So actually let’s do that. So I’m gonna stop here. Quick recap, we looked at everything else from what I can tell it was left off the design center. We looked at the portal, publishing it, making enabled and disabled is enabled by default. We looked at customization, change, you can add your logo, your colors, and then publish your portal once it’s ready for the community to consume. Till then you share it with your team members to collaborate.

A lot of the experience is similar to a lot of the other tools out there. It just feels like this UI was designed and built like many years ago. Um, so it doesn’t look that current, but it’s all right. Uh, if you’re using it, I guess if it works, there’s no issues then. Right. So that’s, that’s it for now. And we’ll pick up, uh, you know, from where we left off here in the next one, remember to check out this, our APIs on the, you know, on AWS marketplace and on Blobr we have it on several different API hubs.

Go to saas.snowpal.com If you forget everything else, just go to saas.snowpal.com, and you should have all the links from there to be able to build your mobile apps, web apps, and back-end microservices without having to do boilerplate stuff on the back-end, because that’s literally what we’ve done. We published these thousands of endpoints for you to save your time, money, and resources and build this next cool thing that you are, I’m sure, building right now. Cool. Thanks, talk to you soon.

Go to Part 4.

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