Header image

Giới Thiệu Về API Là Gì?

22/04/2022

591

Giới Thiệu Về API

Xin chào các bạn, mình là Thắng, thành viên team QC của SupremeTech. Trong bài viết này, mình sẽ giải thích cho các bạn về một khái niệm rất quen thuộc trong kiểm thử nói riêng mà còn trong ngành IT nói chung, đó là API.

Mình nhớ khoảng thời gian đầu tiên khi mình bắt đầu nhận việc trong một dự án với yêu cầu chỉ có API; lúc đó mình còn chưa có đủ kiến thức và kinh nghiệm cùng với sự tự tin về mảng này. Có rất nhiều câu hỏi trong đầu mình như phải tìm hiểu thế nào? Kiểm thử ra sao? Và sau đó mình đã cố gắng học hỏi và thực hành rất nhiều, sau cùng mình nhận ra API không quá khó như lúc đầu mình nghĩ, ít nhất mình đã có được kinh nghiệm và kiến thức để tự tin áp dụng vào trong dự án.

Ở đây, mình sẽ chia sẻ lại cho các bạn những gì mình đã tìm hiểu, đã áp dụng vào thực tế, để mọi người có góc nhìn khác khi một tester nhìn vào API thì sẽ như thế nào nhé.

API là gì?

API là viết tắt của cụm từ Giao diện lập trình ứng dụng (Application Programming Interface). API cung cấp khả năng truy xuất đến một tập các hàm hay dùng. Và từ đó có thể trao đổi dữ liệu giữa các ứng dụng. Một cách dễ hiểu thì API là một trung gian phần mềm cho phép hai ứng dụng giao tiếp với nhau.

Ví dụ về API trong thực tế

Tưởng tượng bạn bước vào một nhà hàng, bạn đặt món, nhân viên phục vụ sẽ tiếp nhận yêu cầu của bạn và đưa vào nhà bếp, sau đó sẽ mang ra món ăn đúng với yêu cầu của bạn. Trong ví dụ trên, API là nhân viên phục vụ, đã giúp bạn và đầu bếp giao tiếp với nhau.

Bây giờ hãy nghĩ về một trường hợp ứng dụng API trong thực tế nhé. Giả sử bạn đi du lịch, bạn sẽ vào trang web của các hãng hàng không nhằm kiểm tra chuyến bay, giá cả, số ghế,… Nhưng vấn đề ở đây là có quá nhiều hãng hàng không và bạn lại không muốn mất thời gian cho những việc thế này, thay vào đó, bạn có thể sử dụng các dịch vụ trực tuyến trung gian nhiều tiện ích như Traveloka hay Expedia. Những dịch vụ đó sẽ tương tác với API của các hãng hàng không để hiển thị cho bạn các thông tin liên quan không chỉ của một mà còn của nhiều hãng bay khác nhau, từ đó giúp cho bạn tiết kiệm được rất nhiều gian và công sức. API thật tuyệt vời đúng không!

what is an API

HTML là gì?

Khoảng thời gian sau khi World Wide Web (WWW) được ra đời vào cuối những năm 1980, nhu cầu trao đổi dữ liệu giữa các thiết bị điện tử trở nên phát triển hơn bao giờ hết. Vào thời điểm đó, các tập tin siêu văn bản HTML được đưa lên web và người sử dụng có thể đọc được nội dung một cách dễ dàng.

HTML là viết tắt của từ HyperText Markup Language – Ngôn ngữ Đánh dấu Siêu văn bản. Đây là một loại ngôn ngữ nhằm định dạng trang web thông qua các thẻ (tag) nhằm giúp cho máy tính hiểu được bố cục và cấu trúc của trang web và hiển thị trang web đó. Tuy nhiên lập trình viên chỉ có thể sử dụng những tag được quy định sẵn trong HTML khiến cho việc mở rộng hay tạo ra những nội dung mới trên website khá khó khăn.

Một vấn đề khác nữa là HTML chỉ đơn thuần là ngôn ngữ trình bày nội dung, nó không có chức năng lưu trữ hay trao đổi dữ liệu giữa các máy tính với nhau, nghĩa là các hệ thống không thể tương tác với nhau như cập nhật giá cả hàng ngày chẳng hạn.

XML là gì?

Do đó XML – Extensible Markup Language được ra đời với sứ mệnh tạo ra các tài liệu web cho cả người và máy tính đều có thể dễ dàng đọc được, khiến Internet thực sự trở thành một mạng lưới liên kết đúng nghĩa thật sự. XML được phát triển bởi mười một người đóng góp tại W3C vào năm 1997.

XML, đúng như tên gọi của nó (Extensible – mở rộng), đã giải quyết được một vài vấn đề của HTML như thay vì sử dụng các tag có sẵn thì XML cho phép các lập trình viên tự tạo ra các tag của chính mình, từ đó cho phép họ thể hiện được nhiều nội dung hơn trên website, và đặc biệt là XML cho phép gói dữ liệu vào trong nội dung văn bản và trao đổi giữa các hệ thống với nhau.

Trước khi XML ra đời thì các hệ thống vẫn có thể trao đổi dữ liệu với nhau nhưng đó là một quy trình rất phức tạp và phải thống nhất rất nhiều quy tắc, dẫn tới việc nếu trao đổi dữ liệu lớn thì sẽ xảy ra tình trạng bị mất dữ liệu trong lúc chuyển đổi. Với XML, lập trình viên có thể khai báo trước các tag của mình và các hệ thống đều có thể đọc được và tương tác với nhau dễ dàng hơn.

Mình sẽ lấy một ví dụ đơn giản cho bạn dễ hiểu nhé. Trong HTML có một thẻ tag là <title> nhằm khai báo tiêu đề trang web. Cấu trúc sẽ như thế này:

<!DOCTYPE html>
<html>
  <head>
    <title>Supremetech blog</title>
  </head>
  <body>
  </body>
</html>

Trong khi đó, với XML bạn có thể tự khai báo thẻ tag <title> với nhiều mục đích khác nhau như tiêu đề trang web và tiêu đề một quyển sách hiển thị trên trang web đó mà không lo bị lỗi:

<?xml version="1.0" encoding="UTF-8"?>
<page>
  <head>
     <title>Book store</title>
  </head>
  <body>
    <library>
      <book>
        <title>Harry Potter</title>
        <author>J.K Rowling</author>
      </book>
      <book>
        <title>Sherlock Holmes</title>
        <author>Conan Doyle</author>
      </book>
    </library>
  </body>
</page>

Các bạn có thể thấy thẻ tag <title> nằm trong thẻ <head> sẽ được máy tính hiểu là tiêu đề của trang, còn thẻ <title> nằm trong thẻ <book> sẽ được hiểu là tiêu đề của quyển sách.

SOAP và RESTful

Sau khi hiểu được API là gì, các bạn sẽ thấy API vô cùng quan trọng trong thời đại số như hiện nay. Và như một điều hiển nhiên, mọi thứ sau khi phát triển một thời gian sẽ hình thành những quy tắc chung. Sau đây mình sẽ giới thiệu 2 chuẩn phổ biến là SOAP là RESTful.

SOAP

Sau khi XML ra đời, một vài kỹ sư tại Microsoft đã phát triển SOAP. SOAP là một tiêu chuẩn dựa hoàn toàn vào XML để chuẩn hóa việc giao tiếp giữa server và thiết bị (client), từ đó giúp cho việc phát triển API tốt hơn. Sau khi SOAP xuất hiện, đặc biệt vào năm 2000, SOAP đã được Microsoft và IBM thúc đẩy và trở nên phổ biến. Một số công ty và các tập đoàn lớn đã sử dụng SOAP như HP hay Oracle cho các chương trình của họ.

Một vấn đề khá lớn của SOAP là có quá nhiều quy tắc phải tuân thủ khiến cho lập trình viên thấy nó quá khó để sử dụng. Mặc dù việc có nhiều quy tắc cũng là một ưu điểm của SOAP bởi vì nhờ đó các lập trình viên có thể tạo ra các hệ thống độc lập nhưng vẫn giao tiếp tốt với nhau. Từ khả năng giao tiếp tốt đó, các hệ thống lớn gồm nhiều hệ thống liên quan sẽ được quản lý và phát triển một cách dễ dàng hơn.

RESTful

Một nhà khoa học máy tính tên Roy Fielding đã nhìn ra vấn đề đó và giới thiệu tiêu chuẩn REST trong luận văn tiến sĩ của mình với mục đích duy nhất: tạo ra tiêu chuẩn giúp cho các server đều có thể giao tiếp được với nhau. Nếu như SOAP sử dụng XML để tạo request và response thì RESTful có thể tạo request với một URL đơn giản đi cùng với các phương thức (method) như GET, POST, PUT, DELETE và response trả về cũng được viết ở nhiều dạng như JSON hay CSV. Bạn hãy nhìn vào ví dụ dưới đây về request và response của API dùng để xem giá cả nếu được viết dưới dạng XML theo tiêu chuẩn SOAP:

  • Request
<?xml version="1.0"?>

<soap:Envelope
xmlns:soap="http://www.w3.org/2003/05/soap-envelope/"
soap:encodingStyle="http://www.w3.org/2003/05/soap-encoding">

<soap:Body>
  <m:GetPrice xmlns:m="https://www.w3schools.com/prices">
    <m:Item>Apples</m:Item>
  </m:GetPrice>
</soap:Body>

</soap:Envelope>
  • Response:
<?xml version="1.0"?>

<soap:Envelope
xmlns:soap="http://www.w3.org/2003/05/soap-envelope/"
soap:encodingStyle="http://www.w3.org/2003/05/soap-encoding">

<soap:Body>
  <m:GetPriceResponse xmlns:m="https://www.w3schools.com/prices">
    <m:Price>1.90</m:Price>
  </m:GetPriceResponse>
</soap:Body>

</soap:Envelope>

Source: W3C

Rất là rắc rối và phức tạp đúng không nào. Trong khi đó nếu ta cũng dùng API gọi thông tin về giá sản phẩm theo RESTful thì chỉ cần gửi request tới URL (https://www.w3schools.com/prices), chọn method là GET thì sẽ có response dưới dạng JSON như sau:

{
    "Apple": "1.90"
}

Nhìn vào API theo tiêu chuẩn RESTful bạn cũng nhận ra nó đơn giản và dễ dùng hơn SOAP đúng không? Đó là lí do mà vì sao RESTful được sử dụng rất nhiều vào ngày nay.

Một lí do khác là vào thời điểm những năm 2000, Internet phát triển cực kì mạnh mẽ, đặc biệt là mảng thương mại điện tử. Rất nhiều tập đoàn lớn lúc đó đã phát triển API của mình để nhiều bên có thể truy cập vào dữ liệu sản phẩm của họ. Lúc đó Salesforce là một trong những người tiên phong cung cấp API của mình dưới tiêu chuẩn SOAP nhưng lại không được nhiều lập trình viên ưa chuộng vì tài liệu hướng dẫn sử dụng hơn 400 trang.

Trong khi đó, Ebay, mặt khác lại cung cấp API theo chuẩn RESTful và đã đạt được sự thành công đáng kể so với đối thủ là Salesforce lúc bấy giờ khi mà nhiều bên cảm thấy API theo chuẩn RESTful dễ truy cập và dễ sử dụng. Kể từ đó là thời kì phát triển mạnh mẽ của RESTful API, nhiều ông lớn đã đi theo Ebay như Amazon, Flickr,… Dưới đây là sơ đồ thống kê mức độ phổ biến các chuẩn API vào năm 2014:

API

Source

Dưới góc độ kiểm thử và sự phổ biến của RESTful nên mình sẽ nói kỹ hơn về chuẩn này nhé.

RESTful API

Hình ví dụ ở trên minh họa một cách đơn giản về nguyên lý hoạt động của API theo tiêu chuẩn RESTful. Hãy lấy lại ví dụ ở phần trước đó về việc bạn sử dụng Traveloka để xem thông tin về chuyến bay nhé. Bạn vào mục tra cứu chuyến bay trên web Traveloka, sau bước này thì website – client sẽ gửi request theo giao thức HTTP tới server của hãng bay. Tùy thuộc vào phương thức – method bạn gửi thì server sẽ có những xử lý tương ứng. Trong RESTful sẽ có 4 phương thức cơ bản sau đây:

  • GET (SELECT): Trả về một Resource hoặc một danh sách Resource.
  • POST (CREATE): Tạo mới một Resource.
  • PUT (UPDATE): Cập nhật thông tin cho Resource.
  • DELETE (DELETE): Xoá một Resource.

Những phương thức hay hoạt động này thường được gọi là CRUD tương ứng với Create – Tạo, Read – Đọc, Update – Sửa, Delete – Xóa.

Ví dụ ở đây bạn muốn xem thông tin về chuyến bay thì method client dùng sẽ là GET nhằm lấy về danh sách các chuyến bay theo yêu cầu của bạn. Sau khi server nhận được request của Client sẽ tiến hành trả về dữ liệu phù hợp response. Dữ liệu trả về thường được viết dưới dạng JSON hoặc XML tùy thuộc vào tính chất của dự án. Dữ liệu trả về gồm có cấu trúc như sau (mình sẽ để dưới dạng JSON nhé):

{
    "status_code": 200,
    "data": [
        {
            "name": "LH370",
            "Time": "Mar 29, 2022",
            "City": "DNG"
        },
        {
            "name": "LH370",
            "Time": "Mar 29, 2022",
            "City": "HCM"
        }
    ],
}

Các bạn có thể thấy ở response có dòng “status_code”, biến này sẽ cho chúng ta biết được trạng thái của response trả về. Các mã sẽ được phân thành các nhóm như sau:

  • 2xx: Successful responses / Phản hồi thành công:
  • 200 OK – Trả về thành công cho những phương thức GET, PUT, PATCH hoặc DELETE.
  • 201 Created – Trả về khi một Resource vừa được tạo thành công.
  • 204 No Content – Trả về khi Resource xoá thành công.
  • 3xx: Redirects / Điều hướng
  • 304 Not Modified – Client có thể sử dụng dữ liệu cache.
  • 4xx: Client errors / Lỗi phía client
  • 400 Bad Request – Request không hợp lệ
  • 401 Unauthorized – Request cần có auth.
  • 403 Forbidden – bị từ chối không cho phép.
  • 404 Not Found – Không tìm thấy resource từ URL
  • 5xx: Server errors / Lỗi phía máy chủ
  • 500 Server Error: domain, hosting hết hạn, hoặc dừng server đột ngột để test
  • 502 Bad Gateway
  • 503 Service Unavailable

Web services là gì? Phân biệt API và web services

Và lúc này khái niệm web services trở nên phổ biến. Giờ chúng ta tìm hiểu thêm một khái niệm mới nhé.

Nói một cách khái quát, web services là những tài nguyên có sẵn trên internet, là dịch vụ cung cấp một số chức năng mà các ứng dụng khác có thể sử dụng. Chức năng này có thể bao gồm xử lý thanh toán, đăng nhập và lưu trữ cơ sở dữ liệu. Cả API và web services đều đóng vai trò giúp cho các ứng dụng giao tiếp được với nhau. Điểm khác biệt cơ bản giữa API và web services đó là web services giúp các ứng dụng giao tiếp với nhau trên Internet nhưng API có thể giúp các ứng dụng giao tiếp với nhau mà không cần Internet. Chúng ta có thể nói tất cả web services là API nhưng không phải API nào cũng là web services.

Hơi rắc rối đúng không nào, mình sẽ lấy một ví dụ cho bạn dễ hình dung nhé:

Hầu như trong cuộc sống ngày nay chúng ta luôn có sẵn ứng dụng Facebook trên điện thoại của mình. Khi bạn bắt gặp một khoảnh khắc nào đó và muốn chụp một bức hình để chia sẻ cho bạn bè cũng xem, bạn sẽ bấm vào biểu tượng máy ảnh trên Facebook và nó sẽ mở màn hình chụp ảnh cho bạn. Lúc này Facebook sẽ gọi API máy ảnh của điện thoại để sử dụng máy ảnh ngay trên ứng dụng mà không cần phải mở app chụp ảnh mặc định của điện thoại, và việc gọi API này thì không cần mạng. Ở một trường hợp khác, khi bạn vào xem thông tin một địa điểm nào đó trên Facebook thì sẽ thấy bản đồ chỉ đường tới địa điểm đó đúng không? Lúc đó Facebook sẽ gọi API (web services) từ Google Map để lấy thông tin bản đồ về và thao tác này chắc chắn cần mạng mới có thể làm được.

Cho tới hiện tại, việc tranh cãi SOAP hay RESTful tốt hơn vẫn chưa hề kết thúc. Tùy thuộc vào tính chất của dự án và sở thích của lập trình viên mà chúng ta sẽ lựa chọn chuẩn phù hợp. SOAP có thể phức tạp, phải tuân thủ nhiều quy tắc nhưng đôi khi nó lại dễ sử dụng trong một số trường hợp, còn đàn em của nó là RESTful nổi lên như một giải pháp thay thế mới mẻ song vẫn có những vấn đề của riêng nó.

Bài viết giới thiệu về API của mình đến đây là hết, mình rất vui vì một phần nào đó đã giúp các bạn có thêm những kiến thức mới. API theo chuẩn RESTful rất phổ biến, do đó kĩ năng kiểm thử API theo chuẩn này rất cần thiết với tester. Những bài viết tiếp theo mình sẽ giới thiệu cho các bạn về những công cụ thường được sử dụng trong việc test API như Postman, Charles,… Hẹn gặp lại các bạn lần sau!

Reference

  • W3schools (no date) W3schools.com, W3Schools Online Web Tutorials. Available at: https://www.w3schools.com/xml/xml_soap.asp (Accessed: 04 October 2024).
  • Jay (2023) Soap and rest at odds, The History of the Web. Available at: https://thehistoryoftheweb.com/soap-rest-odds/ (Accessed: 04 October 2024).
  • Harrington, D. (2024) The history of rest apis – readme: Resource library, ReadMe. Available at: https://readme.com/resources/the-history-of-rest-apis (Accessed: 04 October 2024).

Author: Thang Tran

Related Blog

ionic vs react native

Software Development

+0

    Ionic vs. React Native: A Comprehensive Comparison

    Ionic vs. React Native is a common debate when choosing a framework for cross-platform app development. Both frameworks allow developers to create apps for multiple platforms from a single codebase. However, they take different approaches and excel in different scenarios. Here’s a detailed comparison. Check out for more comparisons like this with React Native React Native vs. Kotlin Platform Native Script vs. React Native The origin of Ionic Framework Ionic Framework was first released in 2013 by Max Lynch, Ben Sperry, and Adam Bradley, founders of the software company Drifty Co., based in Madison, Wisconsin, USA. What's the idea behind Ionic? The creators of Ionic saw a need for a tool that could simplify the development of hybrid mobile apps. At the time, building apps for multiple platforms like iOS and Android required separate codebases, which was time-consuming and resource-intensive. Therefore, the goal was to create a framework that allowed developers to use web technologies—HTML, CSS, and JavaScript—to build apps that could run on multiple platforms with a single codebase. Its release and evolution over time The first version of Ionic was released in 2013 and was built on top of AngularJS. It leveraged Apache Cordova (formerly PhoneGap) to package web apps into native containers, allowing access to device features like cameras and GPS. 2016: With the rise of Angular 2, the team rebuilt Ionic to work with modern Angular. The renovation improved performance and functionality. 2018: Ionic introduced Ionic 4, which decoupled the framework from Angular, making it compatible with other frameworks like React, Vue, or even plain JavaScript. 2020: The company developed Capacitor, a modern alternative to Cordova. It provides better native integrations and supports Progressive Web Apps (PWAs) seamlessly. Key innovations of Ionic First of all, Ionic popularized the use of web components for building mobile apps. In addition, it focused on design consistency, offering pre-built UI components that mimic native app designs on iOS and Android. Thirdly, its integration with modern frameworks (React, Vue) made it appealing to a broader developer audience. Today, Ionic remains a significant player in the hybrid app development space. It's an optimal choice for projects prioritizing simplicity, web compatibility, and fast development cycles. It has a robust ecosystem with tools like Ionic Studio. Ionic Studio is a development environment for building Ionic apps. The origin of React Native React Native originated at Facebook in 2013 as an internal project to solve challenges in mobile app development. Its public release followed in March 2015 at Facebook’s developer conference, F8. Starting from the problem of scaling mobile development In the early 2010s, Facebook faced a significant challenge in scaling its mobile app development. They were maintaining separate native apps for iOS and Android. It made up duplicate effort and slowed down development cycles. Additionally, their initial solution—a hybrid app built with HTML5—failed to deliver the performance and user experience of native apps. This failure prompted Facebook to seek a new approach. The introduction of React for Mobile React Native was inspired by the success of React, Facebook’s JavaScript library for building user interfaces, introduced in 2013. React allowed developers to create fast, interactive UIs for the web using a declarative programming model. The key innovation was enabling JavaScript to control native UI components instead of relying on WebView rendering. Its adoption and growth React Native quickly gained popularity due to its: Single codebase for iOS and Android.Performance comparable to native apps.Familiarity for web developers already using React.Active community and support from Facebook. Prominent companies like Instagram, Airbnb, and Walmart adopted React Native early on for their apps. Today, React Native remains a leading framework for cross-platform app development. While it has faced competition from newer frameworks like Flutter, it continues to evolve with strong community support and regular updates from Meta (formerly Facebook). Ionic vs. React Native: What's the key differences? Core Technology and Approach React Native Uses JavaScript and React to build mobile apps.Renders components using native APIs, resulting in apps that feel closer to native experiences.Follows a “native-first” approach, meaning the UI and performance mimic native apps. Ionic Uses HTML, CSS, and JavaScript with frameworks like Angular, React, or Vue.Builds apps as Progressive Web Apps (PWAs) or hybrid mobile apps.Renders UI components in a WebView instead of native APIs. Performance React Native: Better performance for apps that require complex animations or heavy computations.Direct communication with native modules reduces lag, making it suitable for performance-intensive apps. Ionic: Performance depends on the capabilities of the WebView.Works well for apps with simpler UI and functionality, but may struggle with intensive tasks or animations. User Interface (UI) React Native: Leverages native components, resulting in a UI that feels consistent with the platform (e.g., iOS or Android).Offers flexibility to customize designs to match platform guidelines. Ionic: Uses a single, web-based design system that runs consistently across all platforms.While flexible, it may not perfectly match the native look and feel of iOS or Android apps. Development Experience React Native: Ideal for teams familiar with React and JavaScript.Offers tools like Hot Reloading, making development faster.Requires setting up native environments (Xcode, Android Studio), which can be complex for beginners. Ionic: Easier to get started for web developers, as it uses familiar web technologies (HTML, CSS, JavaScript).Faster setup without needing native development environments initially. Ecosystem and Plugins React Native: Extensive library of third-party packages and community-driven plugins.Can access native features directly but may require writing custom native modules for some functionalities. Ionic: Has a wide range of plugins via Capacitor or Cordova for accessing native features.Some plugins may have limitations in terms of performance or compatibility compared to native implementations. Conclusion: Which One to Choose? Choose React Native if:You want high performance and a native-like user experience.Your app involves complex interactions, animations, or heavy processing.You’re building an app specifically for mobile platforms.Choose Ionic if:You need a simple app that works across mobile, web, and desktop.You have a team of web developers familiar with HTML, CSS, and JavaScript.You’re on a tight budget and want to maximize code reusability. Both frameworks are excellent in their own right. Your choice depends on your project’s specific needs, the skill set of your development team, and your long-term goals.

    19/11/2024

    21

    Linh Le

    Software Development

    +0

      Ionic vs. React Native: A Comprehensive Comparison

      19/11/2024

      21

      Linh Le

      inter bee 2024

      OTT Streaming

      Our success stories

      +0

        SupremeTech & Enlyt Showcase CloudTV Streaming Solution at Inter BEE 2024

        SupremeTech, along with our partner Enlyt, is excited to present CloudTV, our advanced streaming platform, at Inter BEE 2024. This event is a great chance for us to connect with other professionals in media and technology. We aim to show how CloudTV can help businesses deliver smooth and high-quality streaming to their audiences. Through CloudTV, we’re ready to make streaming easier and more accessible. Inter BEE 2024 is held between November 13 and 15, 2024. Let's join us! About Inter BEE 2024 Inter BEE, or International Broadcast Equipment Exhibition, is one of Japan’s biggest media and tech events. It takes place at Makuhari Messe and marks its significant 60th year in 2024. This exhibition gathers thousands of visitors and exhibitors from around the world. They include professionals from video, audio, and digital media industries. Over 1,000 exhibitors are part of this year’s event, and they bring their latest tools and ideas in content creation, delivery, and audience engagement. Inter BEE also includes unique interactive spaces, like INTER BEE CINEMA, which focuses on new film production tools, and the INTER BEE AWARD, which celebrates top media innovations. This setup makes Inter BEE a place where the latest trends and future ideas come together. Introducing CloudTV, our custom OTT streaming solution CloudTV is a flexible streaming solution that SupremeTech has created for businesses. Built on strong cloud technology, CloudTV lets businesses create their own streaming platforms quickly and easily. It allows for high-quality video streaming that can be viewed on any device—smartphones, computers, or smart TVs. CloudTV is also secure and easy to customize, so each business can make the platform look and feel their own. CloudTV solves problems around scaling and technical complexity. Whether a business is large or small, CloudTV’s setup makes streaming simple and reliable. By supporting the latest streaming standards, CloudTV ensures great video quality across different screens and devices. This makes CloudTV a smart choice for businesses that want to reach viewers with a smooth and simple streaming experience. Get in Touch with SupremeTech If you’re interested in a streaming solution that is simple, reliable, and flexible, come visit our booth at Inter BEE 2024. We’re ready to discuss how CloudTV can help meet your unique streaming needs. You can also reach out to SupremeTech directly to explore how we can create a custom streaming platform for your business. Let’s work together to make streaming easy and engaging with CloudTV.

        14/11/2024

        125

        Linh Le

        OTT Streaming

        +1

        • Our success stories

        SupremeTech & Enlyt Showcase CloudTV Streaming Solution at Inter BEE 2024

        14/11/2024

        125

        Linh Le

        Our success stories

        +0

          SupremeTech welcomes GITS Group to the first GITS CEO Summit in Da Nang

          SupremeTech is excited to announce that we are co-hosting the GITS CEO Summit 2024 in Da Nang. As a proud member of the GITS Group, we look forward to welcoming leaders from around the world to this annual gathering. The summit is our largest internal event, where top executives will discuss technology trends, opportunities, and challenges for the upcoming year. We will focus on innovation, global strategies, and building a stronger GITS community. Why Da Nang? The summit will take place in Da Nang, which is not only known for its beautiful beaches and modern facilities but also for the thriving hub of technology in Vietnam. This vibrant city provides an ideal setting for leaders to connect, explore new business ideas, and share valuable insights. Da Nang is also home to many tech companies and startups advancing Vietnam’s position on the global technology map. By hosting the GITS CEO Summit here, SupremeTech aims to highlight Da Nang’s strategic importance and underscore its potential to be an international center for digital innovation. The Significance of the GITS CEO Summit 2024 The GITS CEO Summit 2024 will take place on December 06, bringing together over 70 CEOs from GITS member companies across Vietnam, Australia, Germany, South Korea, and Singapore. We will exchange ideas on technology trends, opportunities, and challenges for the coming year to drive business growth. We will also review the past year’s activities, share plans for 2025, and honor members who have made outstanding contributions to GITS. This year, the summit will be held at the beautiful Naman Retreat Resort, marking a fresh chapter in their journey toward tech excellence. This summit will be a crucial gathering for industry leaders and tech experts, offering meaningful connections through focused conference sessions, a poolside dinner party under the stars, expert talks on manufacturing and finance, and plenty of networking opportunities for everyone involved. This summit goes beyond the normal conference event. It’s a spontaneous gathering hub that puts technology discussion in a practical context and accelerates union among tech leaders. As collaboration becomes ever more important, this summit will help address tech development challenges and inspire fresh ideas for the future. Key Themes “Global Connections, Technology Adoptions” Under the theme "Global Connections. Technology Adoption," the summit aims to foster meaningful conversations about new technologies and how they affect Vietnam's economy. The agenda includes: 1. Keynote presentation: Vietnam IT Report by Dragon Capital2. Panel discussion: Digital Transformation in Manufacturing3. Panel discussion: ESG Compliance & Opportunities for Growth4. Panel discussion: Vietnam IT Goes Global: Challenges and Lessons Learned At the end of the gathering, our CEO members will engage in a joyful gala dinner to celebrate the past year milestones. The event is expected to inspire technology leaders by both insightful talks and vibrant connections. The GITS Summit 2023 successfully took place in Hanoi Look back on the success of SupremeTech and GITS in Vietnam IT Day 2024 SupremeTech and GITS previously teamed up to host Vietnam IT Day 2024, an event that left a strong impression on Vietnam’s IT community and beyond. This event, held in Sydney, Australia, brought together IT leaders to discuss the future of Vietnam’s tech industry. The focus was on strengthening Vietnam’s reputation as a global tech player, and it was highly successful in facilitating meaningful connections between Vietnamese IT companies and international partners. Learn more about Vietnam IT Day 2024 here. Building on the success of Vietnam IT Day, SupremeTech and GITS are excited to expand our vision for the GITS CEO Summit 2024. Want to stay updated about the event, let's follow us for more. See you in Da Nang!

          13/11/2024

          50

          Ngan Phan

          Our success stories

          +0

            SupremeTech welcomes GITS Group to the first GITS CEO Summit in Da Nang

            13/11/2024

            50

            Ngan Phan

            authentication in react native

            Software Development

            +0

              Getting Started with Authentication in React Native

              Authentication is a critical part of most mobile applications. It helps verify user identity and control access to data and features. There are several libraries that make it easier to set up authentication in React Native. This guide will walk you through the basics of authentication, using the popular libraries react-native-app-auth and Auth0. Why Use an Authentication Library? Using an authentication library simplifies the process of managing user credentials, tokens, and permissions. It also adds security, as these libraries follow the latest standards and best practices. Here, we’ll explore react-native-app-auth for OAuth 2.0 authentication and Auth0 for a more comprehensive identity management solution. Setting Up Authentication with react-native-app-auth react-native-app-auth is a library that supports OAuth 2.0 and OpenID Connect. It’s suitable for apps that need to connect with Google, Facebook, or other providers that support OAuth 2.0. Installation Start by installing the library with: npm install react-native-app-auth If you’re using Expo, you’ll need to use expo-auth-session instead, as react-native-app-auth is not compatible with Expo. Basic Setup To set up react-native-app-auth, configure it with the provider's details (e.g., Google): import { authorize } from 'react-native-app-auth'; const config = { issuer: 'https://accounts.google.com', // Google as OAuth provider clientId: 'YOUR_GOOGLE_CLIENT_ID', redirectUrl: 'com.yourapp:/oauthredirect', scopes: ['openid', 'profile', 'email'], }; In this configuration: issuer is the URL of the OAuth provider.clientId is the ID you receive from the provider.redirectUrl is the URL your app redirects to after authentication.scopes defines what data you’re requesting (e.g., user profile and email). Implementing the Login Function With the configuration done, create a function to handle login: const login = async () => { try { const authState = await authorize(config); console.log('Logged in successfully', authState); // Use authState.accessToken for secure requests } catch (error) { console.error('Failed to log in', error); } }; Here: authorize(config) triggers the authentication flow.If successful, authState contains the access token, ID token, and expiration date.Use the accessToken to make requests to the API on behalf of the user. Logging Out To log users out, clear their tokens: const logout = async () => { try { await authorize.revoke(config, { tokenToRevoke: authState.accessToken }); console.log('Logged out'); } catch (error) { console.error('Failed to log out', error); } }; This will remove the access token and effectively log out the user. Setting Up Authentication in React Native with Auth0 Auth0 is a widely used identity provider that offers a more comprehensive authentication setup. It supports multiple login methods, such as social login, username/password, and enterprise authentication. Installation Install the Auth0 SDK for React Native: npm install react-native-auth0 Basic Setup Initialize the Auth0 client by providing your domain and client ID: import Auth0 from 'react-native-auth0'; const auth0 = new Auth0({ domain: 'YOUR_AUTH0_DOMAIN', clientId: 'YOUR_CLIENT_ID', }); Implementing the Login Function Use Auth0’s web authentication method to start the login flow: const login = async () => { try { const credentials = await auth0.webAuth.authorize({ scope: 'openid profile email', audience: 'https://YOUR_AUTH0_DOMAIN/userinfo', }); console.log('Logged in successfully', credentials); // Store credentials.accessToken for API requests } catch (error) { console.error('Failed to log in', error); } }; Here: scope and audience define the permissions and data you request.credentials.accessToken will be used for secure API requests. Logging Out To log out with Auth0: const logout = async () => { try { await auth0.webAuth.clearSession(); console.log('Logged out'); } catch (error) { console.error('Failed to log out', error); } }; Storing Tokens Securely Tokens are sensitive data and should be stored securely. Use libraries like react-native-keychain or SecureStore in Expo to securely store tokens: import * as Keychain from 'react-native-keychain'; const storeToken = async (token) => { await Keychain.setGenericPassword('user', token); }; const getToken = async () => { const credentials = await Keychain.getGenericPassword(); return credentials ? credentials.password : null; }; Conclusion This guide covered setting up basic authentication in React Native with react-native-app-auth and Auth0. These libraries streamline the process of handling secure login and token management. After implementing, remember to handle token storage securely to protect user data. Streamline Authentication in React Native with SupremeTech’s Offshore Development Expertise Setting up authentication in a React Native app can be complex, but with the right libraries, it's achievable and secure. Whether using react-native-app-auth for OAuth 2.0 or Auth0 for comprehensive identity management, these tools help handle user authentication smoothly and securely. For businesses aiming to scale and streamline mobile app development, SupremeTech offers skilled offshore development services, including React Native expertise. Our teams are experienced in building secure, high-performance applications that meet industry standards. If you're looking to enhance your mobile development capabilities with a trusted partner, explore how SupremeTech can support your growth.

              11/11/2024

              47

              Linh Le

              Software Development

              +0

                Getting Started with Authentication in React Native

                11/11/2024

                47

                Linh Le

                Customize software background

                Want to customize a software for your business?

                Meet with us! Schedule a meeting with us!