{"id":1848,"date":"2024-08-20T16:47:15","date_gmt":"2024-08-20T16:47:15","guid":{"rendered":"https:\/\/www.xome.com\/blog\/?p=1848"},"modified":"2024-11-26T23:14:04","modified_gmt":"2024-11-26T23:14:04","slug":"best-practices-and-standards-for-building-apis-for-real-estate-data","status":"publish","type":"post","link":"https:\/\/cloud-prod.xome.com\/blog\/best-practices-and-standards-for-building-apis-for-real-estate-data\/","title":{"rendered":"Best Practices and Standards for Building APIs for Real Estate Data\u00a0"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Having a clear set of best practices when building APIs provides guidelines and standards that promote consistency in API design and development, ensure reliability, and make it much easier for developers to work with an API. Without best practices for a team to follow, developers may write code in their preferred style and create inconsistent code with a higher probability of errors.&nbsp;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Our technical teams at Xome\u00ae make it a point to set and follow best practices for building APIs to guarantee scalability of code and a positive developer experience.&nbsp;&nbsp;<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-best-practices-for-building-real-estate-apis\">Best practices for building real estate APIs<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Xome\u2019s API best practices revolve around the idea of implementing clean core architecture, which promotes separation of concerns and maintainability in software development.&nbsp;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">An API project structure should align well with the principles of <a href=\"https:\/\/learn.microsoft.com\/en-us\/archive\/msdn-magazine\/2009\/february\/best-practice-an-introduction-to-domain-driven-design\" target=\"_blank\" rel=\"noreferrer noopener\">domain-driven design (DDD)<\/a> where the domain models are at the center of the architecture and encapsulate the business rules and behaviors. Workflows should be kept simple by using branching strategies like GitHub Flow that allow for continuous delivery and integration.&nbsp;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">There are four important architectural principles and practices in software development that we follow:\u00a0<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Independence of frameworks:<\/strong> The core business logic and domain models are independent of any specific framework or external dependencies. This allows for easier testing and flexibility to switch frameworks or technologies in the future.\u00a0<\/li>\n\n\n\n<li><strong>Separation of concerns:<\/strong> The architecture is organized into three different layers \u2014 the presentation layer (UI), application layer (business logic), and infrastructure layer (data access and external services). Each layer has a specific role and boundaries, and dependencies flow inward towards the core.\u00a0<\/li>\n\n\n\n<li><strong>Dependency rule:<\/strong> Dependencies between layers follow the dependency rule, which states that inner layers should not depend on outer layers. In other words, the core should not have direct knowledge of specific frameworks, databases, or external services. Instead, abstractions and interfaces are used to define boundaries between layers.\u00a0<\/li>\n\n\n\n<li><strong>Testability<\/strong>: By decoupling the core business logic from external dependencies, it becomes easier to write unit tests for the application. Tests can focus on validating the behavior and rules of the domain models without a complex setup or reliance on external resources.<\/li>\n<\/ul>\n\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-common-coding-standards-for-building-apis\">Common coding standards for building APIs<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Following best practices also includes adopting common coding standards. Our development teams at Xome set these, which define rules to follow when writing code for building APIs. This includes consistent naming conventions, clear and concise code, and using HTTP verbs and RESTful principles.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Other common coding standards followed include:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Proper error handling<\/li>\n\n\n\n<li>Logging and monitoring<\/li>\n\n\n\n<li>Unit testing<\/li>\n\n\n\n<li>Documentation<\/li>\n<\/ul>\n\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p class=\"wp-block-paragraph\">To understand how these best practices and standards come together in a real-world example, Xome\u2019s Property Insights API provides an ideal use case.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-building-the-xome-property-insights-api\">Building the Xome Property Insights API<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Property Insights is Xome&#8217;s data offering as an API that provides developers with access to a wide range of real estate data and functionalities. It offers insights on properties, such as their <a href=\"https:\/\/www.xome.com\/pages\/disclosures\">Xome Value\u00ae<\/a>, basic property data, tax and price history, and comparable sales.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The API is designed in a way that keeps the domain models at the base and derives the user models from it. Following <a href=\"https:\/\/www.xome.com\/blog\/migrating-digital-assets-to-the-cloud-a-xome-technology-case-study\/\">Xome\u2019s cloud migration<\/a>, Microsoft Azure is used for storage and monitoring and statistics are collected through the API gateway, a component of Microsoft Azure API Management (APIM). APIM helps us to maintain property insights effectively and takes care the API management, authentication, versioning and different environments under the same roof.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">We also make sure our APIs are containerized. Having APIs containerized allows for isolation of resources. Resource intensive services will not deprive other APIs of their needed resources allowing for consistent performance. Containerized APIs allow them to evolve independently, provide fast deployments and startup, and provide resource flexibility as they only consume what is needed. Containerized APIs also allow for fine-grained permissions and limited access.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">After migrating to cloud services, our teams\u2019 QA processes follow unit testing standards through <a href=\"https:\/\/www.xome.com\/blog\/microsoft-azure-load-testing\/\">extensive load testing<\/a> using Microsoft\u2019s Apache JMeter-based Azure Load Testing tool. This allows to test scaling during peak traffic consumption, which ranges anywhere between 100,000 requests an hour to up to 1 million a day.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-building-high-quality-digital-products-with-well-designed-apis\">Building high-quality digital products with well-designed APIs<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Following a set of best practices as a part of any <a href=\"https:\/\/www.xome.com\/blog\/how-the-machine-learning-lifecycle-helps-improve-avms\/\">software development lifecycle<\/a> is crucial to building high-quality digital solutions, including APIs. The more thought-out an API design is, the more streamlined the integration process is for developers \u2014 plus, code is much easier to maintain.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Cloud services help to simplify meeting these standards so developers can focus more on building robust APIs. When APIs are developed with intention and long-term goals in mind, that shines through in the finished product.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">See our digital products in action while searching <a href=\"https:\/\/www.xome.com\/auctions\">properties for auction<\/a> or <a href=\"https:\/\/www.xome.com\/homes-for-sale\">for sale<\/a>!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Discover the essential practices for building APIs in real estate, focusing on scalability, reliability, and efficient digital solutions.<\/p>\n","protected":false},"author":2,"featured_media":1851,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[107],"tags":[155,154,162,118],"class_list":["post-1848","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-real-estate-tech","tag-api","tag-real-estate-data","tag-tech-best-practices","tag-technology"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v25.3 (Yoast SEO v27.9) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Best Practices and Standards for Building APIs for Real Estate Data\u00a0<\/title>\n<meta name=\"description\" content=\"Discover the essential practices for building APIs in real estate, focusing on scalability, reliability, and efficient digital solutions\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/cloud-prod.xome.com\/blog\/best-practices-and-standards-for-building-apis-for-real-estate-data\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Best Practices and Standards for Building APIs for Real Estate Data\u00a0\" \/>\n<meta property=\"og:description\" content=\"Discover the essential practices for building APIs in real estate, focusing on scalability, reliability, and efficient digital solutions\" \/>\n<meta property=\"og:url\" content=\"https:\/\/cloud-prod.xome.com\/blog\/best-practices-and-standards-for-building-apis-for-real-estate-data\/\" \/>\n<meta property=\"og:site_name\" content=\"Xome | Blog\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/XomeRealEstate\" \/>\n<meta property=\"article:published_time\" content=\"2024-08-20T16:47:15+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-11-26T23:14:04+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/cloud-prod.xome.com\/blog\/wp-content\/uploads\/2024\/08\/r3wawu5fi5q.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1600\" \/>\n\t<meta property=\"og:image:height\" content=\"1067\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Xome\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@XomeRealEstate\" \/>\n<meta name=\"twitter:site\" content=\"@XomeRealEstate\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Xome\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"4 minutes\" \/>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Best Practices and Standards for Building APIs for Real Estate Data\u00a0","description":"Discover the essential practices for building APIs in real estate, focusing on scalability, reliability, and efficient digital solutions","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/cloud-prod.xome.com\/blog\/best-practices-and-standards-for-building-apis-for-real-estate-data\/","og_locale":"en_US","og_type":"article","og_title":"Best Practices and Standards for Building APIs for Real Estate Data\u00a0","og_description":"Discover the essential practices for building APIs in real estate, focusing on scalability, reliability, and efficient digital solutions","og_url":"https:\/\/cloud-prod.xome.com\/blog\/best-practices-and-standards-for-building-apis-for-real-estate-data\/","og_site_name":"Xome | Blog","article_publisher":"https:\/\/www.facebook.com\/XomeRealEstate","article_published_time":"2024-08-20T16:47:15+00:00","article_modified_time":"2024-11-26T23:14:04+00:00","og_image":[{"width":1600,"height":1067,"url":"https:\/\/cloud-prod.xome.com\/blog\/wp-content\/uploads\/2024\/08\/r3wawu5fi5q.jpg","type":"image\/jpeg"}],"author":"Xome","twitter_card":"summary_large_image","twitter_creator":"@XomeRealEstate","twitter_site":"@XomeRealEstate","twitter_misc":{"Written by":"Xome","Est. reading time":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/cloud-prod.xome.com\/blog\/best-practices-and-standards-for-building-apis-for-real-estate-data\/#article","isPartOf":{"@id":"https:\/\/cloud-prod.xome.com\/blog\/best-practices-and-standards-for-building-apis-for-real-estate-data\/"},"author":{"name":"Xome","@id":"https:\/\/cloud-prod.xome.com\/blog\/#\/schema\/person\/9ba9f5a5815a35c244a30044cd1fb392"},"headline":"Best Practices and Standards for Building APIs for Real Estate Data\u00a0","datePublished":"2024-08-20T16:47:15+00:00","dateModified":"2024-11-26T23:14:04+00:00","mainEntityOfPage":{"@id":"https:\/\/cloud-prod.xome.com\/blog\/best-practices-and-standards-for-building-apis-for-real-estate-data\/"},"wordCount":796,"publisher":{"@id":"https:\/\/cloud-prod.xome.com\/blog\/#organization"},"image":{"@id":"https:\/\/cloud-prod.xome.com\/blog\/best-practices-and-standards-for-building-apis-for-real-estate-data\/#primaryimage"},"thumbnailUrl":"https:\/\/cloud-prod.xome.com\/blog\/wp-content\/uploads\/2024\/08\/r3wawu5fi5q.jpg","keywords":["API","real estate data","tech best practices","technology"],"articleSection":["Real Estate Tech"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/cloud-prod.xome.com\/blog\/best-practices-and-standards-for-building-apis-for-real-estate-data\/","url":"https:\/\/cloud-prod.xome.com\/blog\/best-practices-and-standards-for-building-apis-for-real-estate-data\/","name":"Best Practices and Standards for Building APIs for Real Estate Data\u00a0","isPartOf":{"@id":"https:\/\/cloud-prod.xome.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/cloud-prod.xome.com\/blog\/best-practices-and-standards-for-building-apis-for-real-estate-data\/#primaryimage"},"image":{"@id":"https:\/\/cloud-prod.xome.com\/blog\/best-practices-and-standards-for-building-apis-for-real-estate-data\/#primaryimage"},"thumbnailUrl":"https:\/\/cloud-prod.xome.com\/blog\/wp-content\/uploads\/2024\/08\/r3wawu5fi5q.jpg","datePublished":"2024-08-20T16:47:15+00:00","dateModified":"2024-11-26T23:14:04+00:00","description":"Discover the essential practices for building APIs in real estate, focusing on scalability, reliability, and efficient digital solutions","breadcrumb":{"@id":"https:\/\/cloud-prod.xome.com\/blog\/best-practices-and-standards-for-building-apis-for-real-estate-data\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/cloud-prod.xome.com\/blog\/best-practices-and-standards-for-building-apis-for-real-estate-data\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/cloud-prod.xome.com\/blog\/best-practices-and-standards-for-building-apis-for-real-estate-data\/#primaryimage","url":"https:\/\/cloud-prod.xome.com\/blog\/wp-content\/uploads\/2024\/08\/r3wawu5fi5q.jpg","contentUrl":"https:\/\/cloud-prod.xome.com\/blog\/wp-content\/uploads\/2024\/08\/r3wawu5fi5q.jpg","width":1600,"height":1067,"caption":"aerial photo of a neighborhood with palm trees, colorful houses and dark roofs"},{"@type":"BreadcrumbList","@id":"https:\/\/cloud-prod.xome.com\/blog\/best-practices-and-standards-for-building-apis-for-real-estate-data\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Blog","item":"https:\/\/cloud-prod.xome.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Real Estate Tech","item":"https:\/\/cloud-prod.xome.com\/blog\/category\/real-estate-tech\/"},{"@type":"ListItem","position":3,"name":"Best Practices and Standards for Building APIs for Real Estate Data\u00a0"}]},{"@type":"WebSite","@id":"https:\/\/cloud-prod.xome.com\/blog\/#website","url":"https:\/\/cloud-prod.xome.com\/blog\/","name":"Xome | Blog","description":"","publisher":{"@id":"https:\/\/cloud-prod.xome.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/cloud-prod.xome.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/cloud-prod.xome.com\/blog\/#organization","name":"Xome | Blog","url":"https:\/\/cloud-prod.xome.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/cloud-prod.xome.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/cloud-prod.xome.com\/blog\/wp-content\/uploads\/2022\/10\/xome-logo-blaze.svg","contentUrl":"https:\/\/cloud-prod.xome.com\/blog\/wp-content\/uploads\/2022\/10\/xome-logo-blaze.svg","width":64,"height":30,"caption":"Xome | Blog"},"image":{"@id":"https:\/\/cloud-prod.xome.com\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/XomeRealEstate","https:\/\/x.com\/XomeRealEstate","https:\/\/www.instagram.com\/xome_com","https:\/\/www.linkedin.com\/company\/xome"]},{"@type":"Person","@id":"https:\/\/cloud-prod.xome.com\/blog\/#\/schema\/person\/9ba9f5a5815a35c244a30044cd1fb392","name":"Xome","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/6a23391c131d2bcbe1b80b2697e5f17546685a7b6e8f4f12dc0324ab4d535802?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/6a23391c131d2bcbe1b80b2697e5f17546685a7b6e8f4f12dc0324ab4d535802?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/6a23391c131d2bcbe1b80b2697e5f17546685a7b6e8f4f12dc0324ab4d535802?s=96&d=mm&r=g","caption":"Xome"},"url":"https:\/\/cloud-prod.xome.com\/blog\/author\/jfritsche\/"}]}},"_links":{"self":[{"href":"https:\/\/cloud-prod.xome.com\/blog\/wp-json\/wp\/v2\/posts\/1848","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/cloud-prod.xome.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/cloud-prod.xome.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/cloud-prod.xome.com\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/cloud-prod.xome.com\/blog\/wp-json\/wp\/v2\/comments?post=1848"}],"version-history":[{"count":3,"href":"https:\/\/cloud-prod.xome.com\/blog\/wp-json\/wp\/v2\/posts\/1848\/revisions"}],"predecessor-version":[{"id":1852,"href":"https:\/\/cloud-prod.xome.com\/blog\/wp-json\/wp\/v2\/posts\/1848\/revisions\/1852"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/cloud-prod.xome.com\/blog\/wp-json\/wp\/v2\/media\/1851"}],"wp:attachment":[{"href":"https:\/\/cloud-prod.xome.com\/blog\/wp-json\/wp\/v2\/media?parent=1848"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/cloud-prod.xome.com\/blog\/wp-json\/wp\/v2\/categories?post=1848"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/cloud-prod.xome.com\/blog\/wp-json\/wp\/v2\/tags?post=1848"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}