Last Tuesday I had another meeting with my mentor and we started discussing the front-end of the application I’m working on. I had gotten back to Angular, which I missed a lot, and was pretty happy about it. Seeing all the plumbing I’ve been working on finally materialising into a user interface was very satisfactory.
As soon as we got into the particulars of consuming the API with Angular Material, which was my focus for our meeting, he said: “Oh, you don’t have pagination”, which made me realise pagination, sorting and filtering are basic elements of an API and I hadn’t done it.
So after the meeting I tried to apply a few solutions gathered from the web into my project but I couldn’t implement it, probably because of sheer lack of experience. On Wednesday, which was a particularly difficult day due to circumstances related to my job, I spent two hours looking at my laptop in the train without getting anything done.
Then on the Thursday I regrouped, woke up early, went to my favourite cafe up in the Sunshine Coast and started the project from scratch, using Kevin Docx “Building a Restful API with ASP.NET Core 3”. I knew it would take some time to build the app again from zero but it was necessary to get a better hold of what I’m doing. And going into the project I decided I wasn’t going to start from scratch again. I won’t have this luxury when I have tight dead lines to work with. Rather I’d create a very good documentation of the project and solve whatever problems I face with the help of the community.
The Sorting Maze
So that’s where I am right now, back to the plumbing. I haven’t touched Angular for week, fully focused on getting the API up and running. Right now I’m dealing with the complexities of creating a sorting functionality, which is the follow-up course: Implementing Advanced Restful Concerns with ASP.NET Core 3. The solution presented by Kevin seems very intricate and I confess I felt lost for the most part of the last couple of days but I know that this level of discomfort will lead to progress soon. The solution is multi-layered, involving many classes with their respective interfaces. Which means I’ll stay with it for another couple of days before moving on.
The Next Issue
As amazing as the courses are, I’m a bit concerned with the fact that in both courses none of the methods are asynchronous and I’m not sure it will be easy to implement the solutions provided in Kevin’s “Building an Async API” course to a complex application to make it async. I guess I’ll have to use help of the community if I get stuck.
All of the above concerns don’t even mention the fact that the app might be tore apart by my mentor, the developer of the parent project, to apply the implementations and architecture that he uses in his project. At the same time it’s liberating because I can just get the app to work using any technique I find appropriate, but it does cause a bit of anxiety on my perfectionist self.
So that’s it! In the next few days hopefully I’ll finalise a more robust API so I can transition to Angular without having to look back. I’m confident all the hard work will pay off and I’ll be using what I learned as a solid foundation for the creation of many APIs.