Software Engineer
JF-Expert Member
- Dec 20, 2014
- 344
- 137
Nina android app ambayo inategemea .NET web service kuchota data kutoka kwenye database.
Sasa inapotokea nina badilisha au re-design baadhi ya web service components najikuta nalazimika kufanya mabadiliko kwenye mobile app, kisha na update changes.
User ambaye hatakuwa ame update kwenye latest version basi hatoweza kupata service alizokuwa anapata mwanzoni.
Je strategy ipi nzuri ambayo nawezakuitumia ili ku decouple mobile app from webservice? Kusiwe na ulazima wa kufanya changes kwenye mobile app pindi napofanya changes kwenye backend.
Pamoja
Sometimes unataka ku add new features, au kubadilisha naming ya method n,kMkuu labda utupe mfano, ukibadilisha nini inakulazimu kubadilisha na mobile app nzima?
Version your API
api/v1/login/uname/password
Then ikibadillika unatendeneza version2
api/v2/login/uname/password/country
Mtu anayetumia Mobile app ya kwanza atatumia v1 na akiupgrade anatumia v2.
Ukishaona matumizi ya version1 ni madogo. Remove the API na uwasaidie waliobaki ku migrate to v2.
That is the pro way to do it!
Unatumia WebApi/MVC5 au Old WebService?Thanks mkuu
Nilijaribu attribute routing (.NET) nikawa napata null request/response data, nikaona isiwe shida, nika switch back kwenye default routing.
Ngoja ni apply approach yako mkuu.
Unatumia WebApi/MVC5 au Old WebService?
can you share sample code ambayo inarudisha mrejesho Null?Web Api/MVC
can you share sample code ambayo inarudisha mrejesho Null?
public class FeedbackMobileController : ApiController
{
[Route("api/V1/feedbackmobile/someAction/{userid}/{subject}/{body}/{telephone}/{email}")]
public int postFeedback(string usedid, string subject, string body, string telephone, string email)
{
bool inserted = false; // track crud status
if (inserted)
{
//
// detailed code removed
//
return 1; // successfully inserted into relational database
}
return 0; // nothing inserted
}
}
few things
1. Use controller camel case not dasherized
2. Do not prefix whole controller. It kills flexibility and causes much subtle issues
3. Do not handle more than on verb in single action. Breakdown your action so that one handles POST (creating data by REST standards) and GET which should fetch data.
4. Use EF for database Ops wherever possible.
5. Namespace your code
Here is a sample code with some of the points adhered to:
Code:public class FeedbackMobileController : ApiController { [Route("api/V1/feedbackmobile/someAction/{userid}/{subject}/{body}/{telephone}/{email}")] public int postFeedback(string usedid, string subject, string body, string telephone, string email) { bool inserted = false; // track crud status if (inserted) { // // detailed code removed // return 1; // successfully inserted into relational database } return 0; // nothing inserted } }