<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Forem: Mubarak</title>
    <description>The latest articles on Forem by Mubarak (@mayumi_okamoto_6ce103fea7).</description>
    <link>https://forem.com/mayumi_okamoto_6ce103fea7</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F2565721%2F12886370-e50f-4d60-b8aa-4fd41c6a240c.png</url>
      <title>Forem: Mubarak</title>
      <link>https://forem.com/mayumi_okamoto_6ce103fea7</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/mayumi_okamoto_6ce103fea7"/>
    <language>en</language>
    <item>
      <title>DeepSeek-R1: Pros and Cons, and How to Get Started with the DeepSeek-R1 API Quickly🚀🚀</title>
      <dc:creator>Mubarak</dc:creator>
      <pubDate>Sat, 08 Feb 2025 11:13:41 +0000</pubDate>
      <link>https://forem.com/mayumi_okamoto_6ce103fea7/deepseek-r1-pros-and-cons-and-how-to-get-started-with-the-deepseek-r1-api-quickly-1hl2</link>
      <guid>https://forem.com/mayumi_okamoto_6ce103fea7/deepseek-r1-pros-and-cons-and-how-to-get-started-with-the-deepseek-r1-api-quickly-1hl2</guid>
      <description>&lt;p&gt;In the rapidly evolving AI landscape, a new contender from China is making waves - DeepSeek-R1. Developed by leading Chinese AI company DeepSeek, this conversational AI model combines cutting-edge capabilities with unique cultural insights. Let's explore what makes it stand out in the crowded field of large language models.&lt;/p&gt;

&lt;h2&gt;
  
  
  About DeepSeek
&lt;/h2&gt;

&lt;p&gt;I’ve tested every major LLM from GPT-4 Turbo to Claude 3 Opus. But when a Chinese partner insisted I try DeepSeek-R1, I uncovered surprising capabilities most Western developers overlook. &lt;/p&gt;

&lt;p&gt;Founded in 2023 by Chinese tech veterans, DeepSeek specializes in developing foundation models that balance performance with practical usability. Unlike many Western counterparts, DeepSeek emphasizes both technical excellence and deep cultural localization from its inception. Let's explore what makes it stand out in the crowded field of large language models.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fslmbbsggexqo0ugr6yz6.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fslmbbsggexqo0ugr6yz6.png" alt="About DeepSeek" width="800" height="467"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  The Key Advantages of DeepSeek-R1
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Cultural Bilingualism
&lt;/h3&gt;

&lt;p&gt;The DeepSeek-R boasts near-native Chinese comprehension coupled with a profound understanding of Western cultural nuances. Its exceptional prowess in navigating Chinese idioms, poetry, and business etiquette creates a seamless linguistic bridge for cross-cultural communication.&lt;/p&gt;

&lt;h3&gt;
  
  
  Efficient Reasoning
&lt;/h3&gt;

&lt;p&gt;In terms of reasoning efficiency, DeepSeek-R1 demonstrates remarkable performance. As a 34B parameter model, it achieves over 80% of GPT-4's capabilities while consuming merely one-fifth of the computational resources. The meticulously optimized 16k token context window enables sophisticated handling of real-world conversational complexities.&lt;/p&gt;

&lt;h3&gt;
  
  
  Customization Ready
&lt;/h3&gt;

&lt;p&gt;DeepSeek-R1's modular architecture facilitates effortless adaptation to industry-specific requirements. By supporting Retrieval-Augmented Generation (RAG), the model enables seamless knowledge base integration, significantly enhancing its professional versatility and practical applicability.&lt;/p&gt;

&lt;h3&gt;
  
  
  Safety by Design
&lt;/h3&gt;

&lt;p&gt;Safety remains a fundamental design principle for DeepSeek-R1. The built-in content filtering mechanism rigorously adheres to both Chinese and international standards, ensuring output safety and regulatory compliance. Moreover, its privacy-first approach, which allows optional local deployment, provides users with maximum data control and security assurance.&lt;/p&gt;

&lt;h2&gt;
  
  
  Current Limitations of DeepSeek-R1
&lt;/h2&gt;

&lt;p&gt;Despite DeepSeek-R1's impressive performance across multiple domains, it currently faces several limitations that require ongoing improvement. &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Western pop culture knowledge less comprehensive than localized Western models(scored 6/10 vs GPT-4’s 9/10 in Marvel trivia)
&lt;/li&gt;
&lt;li&gt;Smaller developer ecosystem compared to OpenAI
&lt;/li&gt;
&lt;li&gt;Documentation primarily Chinese-first (English version expanding)&lt;/li&gt;
&lt;li&gt;TLacks native Zapier/IFTTT connectors – requires custom webhooks
&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Technical Comparison
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Feature&lt;/th&gt;
&lt;th&gt;DeepSeek-R1&lt;/th&gt;
&lt;th&gt;GPT-4&lt;/th&gt;
&lt;th&gt;Claude 3&lt;/th&gt;
&lt;th&gt;Llama 2&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Multilingual&lt;/td&gt;
&lt;td&gt;★★★★☆&lt;/td&gt;
&lt;td&gt;★★★☆☆&lt;/td&gt;
&lt;td&gt;★★☆☆☆&lt;/td&gt;
&lt;td&gt;★★☆☆☆&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Chinese Expertise&lt;/td&gt;
&lt;td&gt;★★★★★&lt;/td&gt;
&lt;td&gt;★★★☆☆&lt;/td&gt;
&lt;td&gt;★☆☆☆☆&lt;/td&gt;
&lt;td&gt;★☆☆☆☆&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Speed&lt;/td&gt;
&lt;td&gt;180 t/s&lt;/td&gt;
&lt;td&gt;90 t/s&lt;/td&gt;
&lt;td&gt;120 t/s&lt;/td&gt;
&lt;td&gt;70 t/s&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Customization&lt;/td&gt;
&lt;td&gt;API &amp;amp; Local&lt;/td&gt;
&lt;td&gt;API Only&lt;/td&gt;
&lt;td&gt;Limited&lt;/td&gt;
&lt;td&gt;Local Only&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Cost per 1M tokens&lt;/td&gt;
&lt;td&gt;$3.50&lt;/td&gt;
&lt;td&gt;$20.00&lt;/td&gt;
&lt;td&gt;$15.00&lt;/td&gt;
&lt;td&gt;Self-hosted&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  API Quickstart Guide of DeepSeek-R1
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1. Login to DeepSeek Platform
&lt;/h3&gt;

&lt;p&gt;Register at &lt;a href="https://platform.deepseek.com/sign_up" rel="noopener noreferrer"&gt;platform.deepseek.com&lt;/a&gt; for API keys.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftd5epeg209txccnhzro5.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftd5epeg209txccnhzro5.png" alt="Login to DeepSeek Platform" width="800" height="506"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Create your API Key
&lt;/h3&gt;

&lt;p&gt;In the “API Keys” section of Deepseek, select “Create new API key”. Once created, copy the key and save it properly, you will not be able to copy the key again after closing the window.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fotus53psfyf68gum02to.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fotus53psfyf68gum02to.png" alt="Create your Deepseek API Key" width="800" height="357"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Getting Started with the DeepSeek-R1 API
&lt;/h3&gt;

&lt;p&gt;Once you have the API Key, integrate it into your code to initiate API requests.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;import deepseek

client = deepseek.Client(api_key="YOUR_KEY")

response = client.chat.completions.create(
    model="deepseek-r1-34b",
    messages=[
        {"role": "user", "content": "Explain quantum computing in Chinese poetry style"}
    ],
    temperature=0.7
)

print(response.choices[0].message.content)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;You can also use some of Deepseek's advanced features：&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Custom Knowledge Grounding&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;# Upload industry-specific data
client.knowledge.upload(
    files=["pharma_glossary.pdf", "supply_chain_db.json"],
    namespace="my_company",
    vectorize_strategy="hybrid" # Combines DeepSeek's model with your embeddings
)

# Query with grounding
response = client.chat(
    query="How to handle herbal medicine customs clearance?",
    namespace="my_company",
    temperature=0.3 # Lower for factual accuracy
)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Multi-Hop Translation&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;# Perfect for cross-border e-commerce
translated = client.translate(
    text="his product complies with EU CE certification standards (Certificate No. XXXXX)", 
    target_lang="de",
    style="marketing" # Options: legal/technical/marketing
)

# Output: "Dieses Produkt entspricht den CE-Zertifizierungsstandards der EU (Zertifikat Nr. XXXXX)."
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Safety Overrides&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;deepseek.configure({
    content_filter: {
        level: "strict", 
        custom_blocklist: ["Tibet independence"],
        audit_trail: true // Required for regulated industries
    }
});
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  4. Calling Deepseek API Easily
&lt;/h3&gt;

&lt;p&gt;Debugging Deepseek's API can be done effortlessly.  &lt;/p&gt;

&lt;p&gt;Using &lt;a href="https://apidog.com/?utm_source=dev_to&amp;amp;utm_medium=mubarak&amp;amp;utm_content=vanodeepseek" rel="noopener noreferrer"&gt;Apidog&lt;/a&gt;'s API Hub, you can directly access the Deepseek API. It offers comprehensive documentation and pre-configured environments, enabling you to start making API calls instantly.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Foxi45siulyce7krdg8r2.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Foxi45siulyce7krdg8r2.png" alt="Using Apidog's API Hub to test the Deepseek API" width="800" height="500"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;We just need to paste the API Key into the token field in the Auth settings.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhce4cr5m0v9vmwoeee8n.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhce4cr5m0v9vmwoeee8n.png" alt="paste Deepseek API Key" width="800" height="500"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Click "Send" to submit your request and receive a response from the endpoint. Adjusting the message content in the Body allows you to simulate various conversations.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2dhs9f9tesmljokl210l.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2dhs9f9tesmljokl210l.png" alt="Calling Deepseek API" width="800" height="486"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;During API debugging, you can conveniently consult the Markdown documentation above to resolve any issues.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0ch9r0p6notw0jlpaonh.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0ch9r0p6notw0jlpaonh.png" alt="Deepseek API Ducumentation" width="800" height="477"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Getting Started Resources
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Cheat Sheet: &lt;a href="https://deepseek.com/docs/r1-cheatsheet" rel="noopener noreferrer"&gt;DeepSeek-R1 API Quick Reference  &lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Playground: Experiment with &lt;a href="https://playground.deepseek.com" rel="noopener noreferrer"&gt;Live Demo&lt;/a&gt; (VPN needed outside China)
&lt;/li&gt;
&lt;li&gt;Community: Join 50K+ developers on &lt;a href="https://discord.gg/deepseek-EN" rel="noopener noreferrer"&gt;DeepSeek Discord&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;API Devtool：&lt;a href="https://apidog.com/?utm_source=dev_to&amp;amp;utm_medium=mubarak&amp;amp;utm_content=vanodeepseek" rel="noopener noreferrer"&gt;API Development Platform&lt;/a&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Final Thoughts
&lt;/h2&gt;

&lt;p&gt;DeepSeek-R1 isn’t just a "Chinese GPT" – it’s a strategically different AI optimized for bicultural workflows. While Western giants focus on raw parameter counts, DeepSeek delivers where it matters for practical business needs: cost efficiency, regulatory compliance, and cultural precision.  &lt;/p&gt;

&lt;p&gt;While not without limitations, its unique value proposition makes it particularly compelling for global teams needing Chinese capabilities and organizations prioritizing cost-efficient AI deployment.&lt;/p&gt;

&lt;p&gt;For global teams, ignoring R1 could mean leaving 6-figure savings and China-market opportunities on the table. The question isn’t whether to adopt it, but how quickly you can integrate it alongside your existing AI stack. &lt;/p&gt;

&lt;p&gt;Ready to explore? Start your journey at &lt;a href="https://www.deepseek.com" rel="noopener noreferrer"&gt;DeepSeek Official Site&lt;/a&gt; or join the developer community at DeepSeek Discord.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>deepseek</category>
      <category>programming</category>
      <category>api</category>
    </item>
    <item>
      <title>Boost Your Java Development Efficiency: Comparing Built-in API Testing Plugins for IntelliJ IDEA🚀🚀</title>
      <dc:creator>Mubarak</dc:creator>
      <pubDate>Thu, 16 Jan 2025 09:07:00 +0000</pubDate>
      <link>https://forem.com/mayumi_okamoto_6ce103fea7/boost-your-java-development-efficiency-comparing-built-in-api-testing-plugins-for-intellij-idea-16g4</link>
      <guid>https://forem.com/mayumi_okamoto_6ce103fea7/boost-your-java-development-efficiency-comparing-built-in-api-testing-plugins-for-intellij-idea-16g4</guid>
      <description>&lt;p&gt;Following the release of Apidog Fast Request on the IntelliJ IDEA plugin marketplace, many users have been curious about how it compares to IntelliJ IDEA’s built-in HTTP Client. In this article, we’ll provide a detailed side-by-side comparison to help you decide which API debugging tool best suits your needs.&lt;/p&gt;

&lt;h2&gt;
  
  
  What is HTTP Client?
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://plugins.jetbrains.com/plugin/13121-http-client" rel="noopener noreferrer"&gt;The HTTP Client&lt;/a&gt; (commonly referred to as the Endpoints Tool Window) provides an aggregated view of client and server APIs within your project. Designed to streamline microservices development and backend-frontend communication, it provides an intuitive interface that also simplifies exploring third-party APIs, making API management more efficient for developers.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsdl90iayoo274i9i6kua.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsdl90iayoo274i9i6kua.png" alt="What is HTTP Client" width="800" height="523"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What is Apidog Fast Request？
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://fastrequest.apidog.com/?utm_source=dev_to&amp;amp;utm_medium=mubarak&amp;amp;utm_content=idea" rel="noopener noreferrer"&gt;Apidog Fast Request&lt;/a&gt; is a free &lt;a href="https://plugins.jetbrains.com/plugin/25925-apidog-fast-request--auto-detect-endpoints-http-rest-client?utm_source=dev_to&amp;amp;utm_medium=mubarak&amp;amp;utm_content=idea" rel="noopener noreferrer"&gt;IntelliJ IDEA plugin&lt;/a&gt; developed by the Apidog team, designed to streamline RESTful API testing directly within the development environment. With features like endpoint detection, quick debugging, automatic API documentation generation, and seamless integration with Apidog for real-time collaboration or OpenAPI file export, the plugin eliminates the need to switch between tools. By simplifying the API development process, it boosts productivity and provides developers with a more efficient workflow.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F76kamb6ipnkk77urbpjt.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F76kamb6ipnkk77urbpjt.png" alt="What is Apidog Fast Request" width="800" height="535"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Apidog Fast Request vs. HTTP Client
&lt;/h2&gt;

&lt;p&gt;Next, let’s delve into a detailed comparison of these two tools from multiple aspects. Both tools are composed of three primary modules: the endpoints list, the request initiation module, and the response parameter module.&lt;/p&gt;

&lt;h3&gt;
  
  
  Comparison: Endpoints List
&lt;/h3&gt;

&lt;p&gt;Both the HTTP Client and Apidog Fast Request automatically scan and list the endpoints in your project. However, the HTTP Client organizes endpoints in a flat, path-based structure without hierarchical differentiation or endpoint names. While functional, this layout can become cluttered and challenging to navigate in projects with numerous endpoints.&lt;/p&gt;

&lt;p&gt;In contrast, Apidog Fast Request employs a directory-based hierarchical structure, displaying both endpoint names and paths for greater clarity. It also includes color-coded labels to differentiate HTTP methods like GET, POST, and PUT, making it easier for users to quickly identify and access the information they need. This intuitive design significantly improves usability and efficiency.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fb0fwfgvh6uq0cpi1x5dj.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fb0fwfgvh6uq0cpi1x5dj.png" alt="Comparison: Endpoints List" width="800" height="393"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Comparison: Endpoint Debugging
&lt;/h3&gt;

&lt;p&gt;The endpoint debugging module in the HTTP Client provides only a simple manual input box where all request parameters need to be manually entered in code form. If you need to add or modify parameters, or apply more settings to them, you would have to input additional code, and in complex scenarios, potentially even copy the code to an external tool for debugging, making the operation quite cumbersome.&lt;/p&gt;

&lt;p&gt;On the other hand, Apidog Fast Request separates the request method, request URL, and parameters, and clearly distinguishes between different types of parameters such as Query, Headers, Path, Body in a table format. If you need to debug another endpoint or modify/add parameters, you can simply click the plus sign for visual operations, making it more intuitive and convenient to use.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2hszqf7zb69as7i34iqx.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2hszqf7zb69as7i34iqx.png" alt="Comparison: Endpoint Debugging" width="800" height="272"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Comparison: Response Parameter
&lt;/h3&gt;

&lt;p&gt;The HTTP Client displays all returned parameters in a single text box, showing them in plain text format, which can make it challenging to focus on key information when there is a large amount of content.&lt;/p&gt;

&lt;p&gt;On the other hand, Apidog Fast Request separates the returned body and headers data, presenting headers parameters clearly in a table format, making the information more intuitive and readable. This layout improves the readability of the information returned by the endpoints, enhancing the overall debugging experience.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F178ormsom38e44z7uvo4.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F178ormsom38e44z7uvo4.png" alt="Comparison: Response Parameter" width="800" height="373"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Comparison: OpenAPI File Generation
&lt;/h3&gt;

&lt;p&gt;Both tools are capable of generating OpenAPI files, but the HTTP Client can only generate files for a single endpoint at a time. On the other hand, Apidog Fast Request not only supports generating files for individual endpoints but also offers project-level file generation. Additionally, it directly saves the generated files locally without the need for copying or additional steps, making it more convenient for projects with multiple endpoints.&lt;/p&gt;

&lt;p&gt;By providing the option for project-level file generation, Apidog Fast Request streamlines the process for users working with multiple endpoints within a project, saving time and effort in managing OpenAPI documentation. This added functionality enhances the tool's usability and efficiency for developers and teams working on complex projects with numerous endpoints.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjwf7e882dq0iutgomx13.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjwf7e882dq0iutgomx13.png" alt="Comparison: OpenAPI File Generation" width="800" height="453"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Comparison: Compatibility
&lt;/h3&gt;

&lt;p&gt;The HTTP Client is an additional feature available on IntelliJ IDEA Ultimate version, and it is not supported on the free Community Edition version. This means that to use this tool, users would need to use the paid version of the software. On the other hand, Apidog Fast Request is a completely free-to-use plugin that is compatible with both IntelliJ IDEA Community Edition and IntelliJ IDEA Ultimate. &lt;/p&gt;

&lt;p&gt;The advantage of Apidog Fast Request being compatible with both versions of IntelliJ IDEA without any additional cost provides a more inclusive option for users who may be using the Community Edition or prefer not to upgrade to the Ultimate version for specific features. This compatibility and accessibility make Apidog Fast Request a versatile and cost-effective choice for developers across different versions of IntelliJ IDEA.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fak5hmm36d9vg70pob5z7.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fak5hmm36d9vg70pob5z7.png" alt="Comparison: Compatibility" width="800" height="735"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Comparison: Additional Features
&lt;/h3&gt;

&lt;p&gt;Apart from basic debugging capabilities, the HTTP Client does not offer any additional features. On the other hand, Apidog Fast Request includes some features that enhance debugging efficiency.&lt;/p&gt;

&lt;h4&gt;
  
  
  Request History
&lt;/h4&gt;

&lt;p&gt;Apidog Fast Request includes a "Request History" feature, allowing users to view the request history for individual endpoints as well as all endpoints. Users can easily view histories based on dates, providing convenient access to past requests.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frozr941jg2t4zsnw3piy.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frozr941jg2t4zsnw3piy.png" alt="Request History" width="800" height="409"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  Global Parameters
&lt;/h4&gt;

&lt;p&gt;Apidog Fast Request also supports global parameters, allowing for unified modifications and references. For example, while the default setting for the port number is automatic detection, there may be cases where this detection is incorrect. In such instances, users can set manual parameters and globally reference them, eliminating the need to manually modify settings for each endpoint. &lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F1a8pi39qjl6fwtcieozo.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F1a8pi39qjl6fwtcieozo.png" alt="Global Parameters" width="800" height="380"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;These additional features in Apidog Fast Request contribute to a more efficient and user-friendly debugging experience, offering enhanced functionalities beyond the basic debugging capabilities provided by the HTTP Client.&lt;/p&gt;

&lt;h2&gt;
  
  
  Function Comparison Summary
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Feature&lt;/th&gt;
&lt;th&gt;HTTP Client&lt;/th&gt;
&lt;th&gt;Apidog Fast Request&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Endpoint Scanning&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Automatic scanning&lt;/td&gt;
&lt;td&gt;Automatic scanning&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Endpoint Display&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Unified display, no hierarchy&lt;/td&gt;
&lt;td&gt;Grouped display with directory hierarchy, clearer structure&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Parameter Setting&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Manual parameter entry in code form&lt;/td&gt;
&lt;td&gt;Auto-fill request parameters with table input&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Price&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Only supported on IntelliJ IDEA Ultimate, not on IntelliJ IDEA Community Edition&lt;/td&gt;
&lt;td&gt;Free to use, supported on both IntelliJ IDEA Ultimate and IntelliJ IDEA Community Edition&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Framework Support&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Comprehensive support&lt;/td&gt;
&lt;td&gt;Mainly supports Java, Kotlin&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;UI Design&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Simple&lt;/td&gt;
&lt;td&gt;Attractive and visually appealing&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Request History&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Global Parameters&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Parsing Response Bodies&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Cookie Management&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Export OpenAPI File&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Manual copying&lt;/td&gt;
&lt;td&gt;One-click download&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Port Number&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Modify for single endpoint&lt;/td&gt;
&lt;td&gt;Modify globally&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;The choice between &lt;a href="https://fastrequest.apidog.com/?utm_source=dev_to&amp;amp;utm_medium=mubarak&amp;amp;utm_content=idea" rel="noopener noreferrer"&gt;Apidog Fast Request&lt;/a&gt; and the HTTP Client depends on the user's specific requirements and preferences. The HTTP Client provides basic HTTP request capabilities such as sending requests and viewing responses, while Apidog Fast Request enhances this by offering a more comprehensive and intuitive user interface with additional customization options like request history, request templates, and environment variables management, resulting in better usability.&lt;/p&gt;

&lt;p&gt;For users needing comprehensive framework support for debugging, the HTTP Client would be the better choice. However, for those seeking a more flexible, powerful, and intuitive debugging tool, Apidog Fast Request may be the optimal choice.&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>programming</category>
      <category>java</category>
      <category>devops</category>
    </item>
    <item>
      <title>Testing Kerberos and NTLM Authenticated APIs🔍: A Step-by-Step Guide</title>
      <dc:creator>Mubarak</dc:creator>
      <pubDate>Fri, 27 Dec 2024 10:22:43 +0000</pubDate>
      <link>https://forem.com/mayumi_okamoto_6ce103fea7/testing-kerberos-and-ntlm-authenticated-apis-a-step-by-step-guide-41n9</link>
      <guid>https://forem.com/mayumi_okamoto_6ce103fea7/testing-kerberos-and-ntlm-authenticated-apis-a-step-by-step-guide-41n9</guid>
      <description>&lt;p&gt;Kerberos is a widely-used security authentication protocol in many companies, essential for testing endpoints that require authentication. However, Postman, the world's most renowned API testing tool, currently doesn't support testing Kerberos-authenticated endpoints, which is undoubtedly unfriendly to many organizations.&lt;/p&gt;

&lt;p&gt;Fortunately, I've discovered a free software that can implement Kerberos authentication - Apidog. This article will detail how to use Apidog to test Kerberos-authenticated endpoints, aiming to enhance your testing process without significant expense.&lt;/p&gt;

&lt;h2&gt;
  
  
  What is Kerberos?
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://learn.microsoft.com/en-us/windows-server/security/kerberos/kerberos-authentication-overview" rel="noopener noreferrer"&gt;Kerberos&lt;/a&gt; is a network security authentication protocol developed by MIT. It has become a built-in authentication technology in Microsoft Windows and is used by many organizations for Single Sign-On (SSO), securely transmitting user identity data to applications.&lt;/p&gt;

&lt;h2&gt;
  
  
  How does Kerberos Authentication work?
&lt;/h2&gt;

&lt;p&gt;Kerberos authentication is a complex process with several components we must understand:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;KDC&lt;/strong&gt;: Key Distribution Center, including AS and TGS components. In Windows environments, this role is typically assumed by the domain controller.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;AS&lt;/strong&gt;: Authentication Server, responsible for initial authentication, verifying user identity, and issuing TGT.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;TGT&lt;/strong&gt;: Ticket Granting Ticket, issued by AS to users who have passed initial authentication, used to request specific service tickets from TGS without re-entering passwords.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;TGS&lt;/strong&gt;: Ticket Granting Service, a component of KDC, responsible for verifying TGTs and issuing service tickets for specific services.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;To better understand the relationship between these components, we can simplify the Kerberos authentication process into the following steps:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;When a user logs in, the client sends an authentication request to the AS.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;After verifying the user's identity, AS issues a TGT.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;When the user needs to access the specific service, they use the TGT to request a service ticket from the TGS.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;TGS verifies the TGT and issues a service ticket for the specific service the user is trying to access.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The user uses this service ticket to access the required service.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;In this process, KDC acts as a whole, containing AS and TGS as its two main functional components. TGT and service tickets are key credentials used to prove identity and authorize access during this process. &lt;/p&gt;

&lt;p&gt;This design allows users to perform initial authentication only once (obtaining a TGT) and request different service tickets multiple times within the TGT's validity period, achieving Single Sign-On (SSO) functionality while maintaining high security.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwbmk4xpd16ajh4yhfhp5.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwbmk4xpd16ajh4yhfhp5.png" alt="How does Kerberos Authentication work" width="800" height="472"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  Benefits of Kerberos Authentication
&lt;/h2&gt;

&lt;p&gt;Using Kerberos as an authentication service offers numerous advantages, particularly in terms of security:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Centralized authentication service&lt;/strong&gt;: All authentication is managed by a central server (KDC), simplifying user management and security policy enforcement, and facilitating auditing and monitoring of authentication attempts.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Mutual authentication&lt;/strong&gt;: Kerberos provides mutual verification, where both client and server verify each other's identity.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Single Sign-On (SSO)&lt;/strong&gt;: Users only need to authenticate once to access multiple services, avoiding password transmission and enhancing security.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Limited ticket validity&lt;/strong&gt;: Actual passwords are never sent over the network; instead, encrypted tickets are used. Tickets are time-stamped and have a limited lifetime controlled by administrators. Automatic ticket renewal without user intervention enhances security without compromising convenience.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Reduced server load&lt;/strong&gt;: Users only need to authenticate once to access multiple services, and servers don't need to handle password verification for each request, improving overall system performance.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;These advantages make Kerberos the preferred choice for enterprise-level authentication, especially in Windows environments and large-scale networks where security, efficiency, and user experience are crucial.&lt;/p&gt;
&lt;h2&gt;
  
  
  Testing Kerberos-Authenticated APIs with Apidog on macOS
&lt;/h2&gt;

&lt;p&gt;Let's walk through the practical steps of using &lt;a href="http://www.apidog.com/?utm_source=dev_to&amp;amp;utm_medium=mubarak&amp;amp;utm_content=kerberos" rel="noopener noreferrer"&gt;Apidog&lt;/a&gt; to test a Kerberos-authenticated API endpoint on macOS.&lt;/p&gt;
&lt;h3&gt;
  
  
  Step 1: Preparation
&lt;/h3&gt;

&lt;p&gt;Companies that employ Kerberos authentication typically set up accounts for each employee in their AD. These organizations provide their staff with essential Kerberos-related information, which usually includes:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Account&lt;/strong&gt;: Typically based on the employee's name, often formatted as firstname.lastname or another company-specified format. Let’s say I have an account called &lt;code&gt;scarlett@APIDOG.LOCAL&lt;/code&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Password&lt;/strong&gt;: A personal password for login purposes. It's usually required to be changed upon first login for security reasons.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Kerberos Realm&lt;/strong&gt;: Generally the uppercase version of the company's domain name. For example: APIDOG.LOCAL.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;KDC Server Address&lt;/strong&gt;: This is the address of the Kerberos Key Distribution Center. It's typically either the Fully Qualified Domain Name (FQDN) or IP address of the domain controller. Examples include &lt;code&gt;ills7i8hyt2.apidog.local&lt;/code&gt; or &lt;code&gt;192.168.1.100&lt;/code&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;This information enables employees to authenticate using the Kerberos protocol, granting them secure access to various company network resources and services.&lt;/p&gt;

&lt;p&gt;It's important to note that the web version of Apidog doesn't support this feature due to browser limitations. Therefore, &lt;strong&gt;make sure you've downloaded the latest version of the Apidog desktop client&lt;/strong&gt;.&lt;/p&gt;
&lt;h3&gt;
  
  
  Step 2: Modify Local DNS
&lt;/h3&gt;

&lt;p&gt;Endpoints using Kerberos authentication are typically accessed within an internal network. Therefore, we need to configure our DNS server to point to the AD server address. This configuration facilitates subsequent access to these endpoints.&lt;/p&gt;
&lt;h3&gt;
  
  
  Step 3:Configure &lt;code&gt;/etc/krb5.conf&lt;/code&gt; File
&lt;/h3&gt;

&lt;p&gt;The &lt;code&gt;krb5.conf&lt;/code&gt; file is the primary configuration file for Kerberos, usually located at &lt;code&gt;/etc/krb5.conf&lt;/code&gt;. Here you can configure the KDC server address, AS, and mapping of Kerberos realm hostnames.&lt;/p&gt;

&lt;p&gt;Check if this file exists on your machine by entering the following command in the terminal:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;cat /etc/krb5.conf
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;If it shows "No such file or directory," you need to create this file.&lt;/p&gt;

&lt;p&gt;If you have nano installed, you can create and edit the file directly in nano. Of course, feel free to use any text editor you're comfortable with.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;nano /etc/krb5.conf
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Then, save the following configuration content in the file:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;[libdefaults]
    default_realm = APIDOG.LOCAL  # Your Kerberos realm name, typically the uppercase form of your organization's domain name

[realms]
    EXAMPLE.COM = {
        kdc = ills7i8hyt2.apidog.local # KDC server address, assumed here to be the FQDN of the domain controller
        admin_server = ills7i8hyt2.apidog.local # Usually the same as the KDC
    }

[domain_realm]
    .apidog.local = APIDOG.LOCAL  # Mapping between domain name and Kerberos realm name, left side is lowercase
    apidog.local = APIDOG.LOCAL
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;After saving, you've successfully configured the &lt;code&gt;/etc/krb5.conf&lt;/code&gt; file on your machine and can proceed to the next step.&lt;/p&gt;

&lt;h3&gt;
  
  
  Step 4: Log in to AD Account
&lt;/h3&gt;

&lt;p&gt;macOS comes with both CLI and GUI tools for Kerberos. The GUI tool is called Ticket Viewer. We can use either of these tools to log in.&lt;/p&gt;

&lt;p&gt;Open Ticket Viewer by typing "Ticket Viewer" in Spotlight search. Choose "Add Identity," enter the company-provided account and password, and you've successfully logged into AD. Note that login accounts have a time limit; you'll need to click the refresh button to "renew" the identity after it expires.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwqkl73ts0fslm0lp4e2t.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwqkl73ts0fslm0lp4e2t.png" alt="Log in to AD Account" width="800" height="501"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Alternatively, you can log in directly using CLI:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;# Obtain a Ticket for an AD account
kinit &amp;lt;username@domain&amp;gt;
# Check local Tickets
klist
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;After successful login, you can test the endpoint in Apidog.&lt;/p&gt;

&lt;h3&gt;
  
  
  Step 5: Configure Auth in Apidog
&lt;/h3&gt;

&lt;p&gt;Open &lt;a href="http://www.apidog.com/?utm_source=dev_to&amp;amp;utm_medium=mubarak&amp;amp;utm_content=kerberos" rel="noopener noreferrer"&gt;Apidog&lt;/a&gt; and create "New Request." &lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Flowve9tytqkolp5qmt28.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Flowve9tytqkolp5qmt28.png" alt="Configure Auth in Apidog" width="800" height="521"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Enter the API endpoint URL you want to test, then click "Auth" below and select "Kerberos" as the type.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4gdj67hukxofjtml9vel.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4gdj67hukxofjtml9vel.png" alt="Enter the API endpoint URL" width="800" height="521"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You'll see that configuring Kerberos authentication only requires filling in an SPN (Service Principal Name). The SPN mainly consists of the KDC server address and Kerberos realm name. In the input box, enter&lt;code&gt;HTTP&lt;/code&gt; + &lt;code&gt;/&lt;/code&gt; + &lt;code&gt;KDC server address&lt;/code&gt; + &lt;code&gt;@&lt;/code&gt; + &lt;code&gt;Kerberos realm name&lt;/code&gt;.&lt;br&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3npmehkd3yg0vi1w9wzl.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3npmehkd3yg0vi1w9wzl.png" alt="SPN" width="800" height="220"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;After filling this in, click send. You should see a successful response, and you can continue with your testing.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0jskalj5ggzhnhfv33ny.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0jskalj5ggzhnhfv33ny.png" alt="a successful response" width="800" height="521"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;In the event of encountering &lt;code&gt;401&lt;/code&gt; error, it is advisable to verify the following points:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;DNS Configuration&lt;/strong&gt;: Ensure that the DNS settings are correctly configured.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Kerberos Setup&lt;/strong&gt;: Verify the accuracy of the Kerberos configuration.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Credential Validity&lt;/strong&gt;: Confirm that the account credentials (username and password) are valid and active.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;API Access Permissions&lt;/strong&gt;: Check whether you have the necessary permissions to access the specific API in question.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Ticket Expiration&lt;/strong&gt;: Examine if the Kerberos ticket has expired. If so, you may need to renew it.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fk1mdyc5gh7u9zeiu4lmu.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fk1mdyc5gh7u9zeiu4lmu.png" alt="401 error" width="800" height="513"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Systematically reviewing these elements can help identify and resolve the root cause of the authentication failure, facilitating successful API access.&lt;/p&gt;

&lt;h2&gt;
  
  
  Testing Kerberos-Authenticated APIs with Apidog on Windows
&lt;/h2&gt;

&lt;p&gt;Great news for Windows users! If you're already part of a domain, you can start testing Kerberos-authenticated APIs in Apidog right away, without any complex configuration.&lt;/p&gt;

&lt;p&gt;Not part of a domain yet? No worries! It's a straightforward process:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Configure your DNS settings&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Join the domain by entering your credentials in the 'Connect to work or school account' section&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;While the process is streamlined, it's crucial to ensure you have the necessary permissions and correct credentials before attempting to join the domain. With these in place, you'll be up and running in no time, ready to leverage Apidog's powerful API testing capabilities in your Kerberos-authenticated environment.&lt;/p&gt;

&lt;h2&gt;
  
  
  Using Apidog to Test NTLM-Authenticated APIs
&lt;/h2&gt;

&lt;p&gt;Windows Server environments often use both Kerberos and &lt;a href="https://learn.microsoft.com/en-us/windows-server/security/kerberos/ntlm-overview" rel="noopener noreferrer"&gt;NTLM authentication&lt;/a&gt; methods. While Kerberos, introduced with Windows 2000, is the preferred choice due to its stronger security, NTLM remains relevant for its speed in small networks and compatibility with older systems.&lt;/p&gt;

&lt;p&gt;Many companies use both protocols, with NTLM serving as a backup when Kerberos fails, ensuring optimal flexibility.&lt;/p&gt;

&lt;p&gt;&lt;a href="http://www.apidog.com/?utm_source=dev_to&amp;amp;utm_medium=mubarak&amp;amp;utm_content=kerberos" rel="noopener noreferrer"&gt;Apidog&lt;/a&gt; supports both authentication methods, with NTLM configuration being particularly simple - requiring just one step and working identically across Windows and macOS systems.&lt;/p&gt;

&lt;h3&gt;
  
  
  Step 1: Preparation
&lt;/h3&gt;

&lt;p&gt;NTLM authentication doesn't require as much information; we only need the company-provided account and password.&lt;/p&gt;

&lt;p&gt;And, don't forget to ensure you've downloaded and registered the latest version of Apidog.&lt;/p&gt;

&lt;h3&gt;
  
  
  Step 2: Modify Local DNS
&lt;/h3&gt;

&lt;p&gt;As with Kerberos authentication, since the endpoints are typically accessed internally, we need to configure the DNS server to the AD server address.&lt;/p&gt;

&lt;h3&gt;
  
  
  Step 3: Configure Auth in Apidog
&lt;/h3&gt;

&lt;p&gt;Surprisingly, NTLM authentication doesn't require any additional configuration. We can directly configure and complete the test in Apidog.&lt;/p&gt;

&lt;p&gt;In the "Auth" section, select "NTLM Authentication" as the type. You'll see two text boxes to fill in: username and password. Simply enter your account credentials.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmz4kimzyuiic33z62jty.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmz4kimzyuiic33z62jty.png" alt="Testing Kerberos-Authenticated APIs with Apidog on Windows" width="800" height="521"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Click "Send," and you're done! Too simple!&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;In this article, we've explored how to use Apidog to test both Kerberos and NTLM authenticated APIs. Apidog proves to be a versatile and user-friendly tool for testing both authentication methods. It provides a straightforward process for configuring Kerberos authentication, which can be particularly beneficial for organizations that have struggled with this in other API testing tools.&lt;/p&gt;

&lt;p&gt;As API security continues to be a critical concern for organizations, tools like &lt;a href="http://www.apidog.com/?utm_source=dev_to&amp;amp;utm_medium=mubarak&amp;amp;utm_content=kerberos" rel="noopener noreferrer"&gt;Apidog&lt;/a&gt; that simplify the testing of secure authentication methods become increasingly valuable. Whether you're working with cutting-edge Kerberos implementations or maintaining systems that rely on NTLM, Apidog provides the capabilities needed to ensure your APIs are functioning correctly and securely.&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>tutorial</category>
      <category>learning</category>
      <category>programming</category>
    </item>
    <item>
      <title>Mock Smarter, Not Harder: Boost Your Frontend Efficiency</title>
      <dc:creator>Mubarak</dc:creator>
      <pubDate>Wed, 18 Dec 2024 08:52:44 +0000</pubDate>
      <link>https://forem.com/mayumi_okamoto_6ce103fea7/enhancing-efficiency-in-frontend-backend-development-with-apidog-5aic</link>
      <guid>https://forem.com/mayumi_okamoto_6ce103fea7/enhancing-efficiency-in-frontend-backend-development-with-apidog-5aic</guid>
      <description>&lt;p&gt;As a front-end developer, I often encounter situations where endpoints are already designed, yet the backend isn't finished. Waiting for the backend to complete these tasks would be a huge time drain and unnecessarily extend the development cycle. To address this issue, I have been on the lookout for tools that empower front-end developers to independently use Mock services, allowing simultaneous development across front and back ends.&lt;/p&gt;

&lt;p&gt;After experimenting with several popular Mock tools, I have chosen &lt;a href="http://www.apidog.com/?utm_source=dev_to&amp;amp;utm_medium=mubarak&amp;amp;utm_content=Mock" rel="noopener noreferrer"&gt;Apidog&lt;/a&gt; as a reliable aide in my daily work. Although Mocking is just one of the many useful features of Apidog, its exceptional performance in this arena compels me to share my experience with everyone.&lt;/p&gt;

&lt;p&gt;In this article, I will provide a detailed introduction to Apidog's Mock functionality and how to use it. Through my experience, I hope to offer other developers valuable insights to improve work efficiency and ensure a smoother development process.&lt;/p&gt;

&lt;h2&gt;
  
  
  Preparing Ahead: Importing Documents into Apidog
&lt;/h2&gt;

&lt;p&gt;Before we delve into the Mock functionality, let's explore Apidog's API document import feature, another significant reason I am attracted to Apidog. Apidog supports 15 different data formats, allowing easy import by simply dragging and dropping files. For long-term Apidog users, automatic scheduled imports are available, offering another user-friendly feature that I intend to cover in detail in future discussions.&lt;/p&gt;

&lt;p&gt;Most of the documentation I worked with previously used Swagger, and importing it is as simple as pasting the Swagger data URL, making the process incredibly smooth.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9i9sc1ywn9vnrtdzcp9m.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9i9sc1ywn9vnrtdzcp9m.png" alt="Importing Documents into Apidog" width="800" height="521"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;After dragging files or pasting the URL as I did, an "Import Preview" window appears, showcasing all endpoints and use cases in a clear hierarchical structure, making it easy to grasp the imported content. Impressively, Apidog can import not just endpoint information but also Schemas and Environments, seamlessly integrating them into the platform, significantly boosting work efficiency and simplifying API document management.&lt;/p&gt;

&lt;p&gt;Apidog takes it a step further by offering extensive migration settings on the right side of the preview window. The "overwrite specific fields" option when dealing with identical endpoints is what I frequently use, perfectly accommodating various complex update scenarios.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgfp74uixs87cr9fyhcri.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgfp74uixs87cr9fyhcri.png" alt="Import Preview" width="800" height="510"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Once imported, we can start exploring the Mock functionality.&lt;/p&gt;

&lt;h2&gt;
  
  
  Zero Configuration: Automatically Mock Data Through Field Names
&lt;/h2&gt;

&lt;p&gt;In my opinion, Apidog's intelligent Mock feature is a developer's best assistant. Its core advantage lies in simplifying the workflow: by merely defining API specifications, Apidog automatically generates the corresponding Mock data without the need for tedious additional configurations. This capability stems from Apidog’s deep understanding of actual development needs. Considering that most API responses include common data types like names, phone numbers, timestamps, emails, and addresses, Apidog has designed a comprehensive set of built-in matching rules. These rules intelligently recognize attribute types and names to generate appropriate simulated data.&lt;/p&gt;

&lt;p&gt;For instance, let's consider an endpoint for user orders. In this scenario, I needed the endpoint to return the ordering user's personal information. After defining the return data's names and types, without any other configuration, Apidog could automatically generate mock data that felt genuinely realistic, including authentic-looking images. This smart Mock functionality enables me to quickly proceed with endpoint integration, page development, and functional testing, greatly simplifying my workflow and significantly benefiting my daily tasks!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fr8vt4qwdsktofl5e5uxk.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fr8vt4qwdsktofl5e5uxk.png" alt="Automatically Mock Data Through Field Names" width="800" height="496"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Simple Configuration: Visual Selection of Mock Rules
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Built-in Faker.js Rules
&lt;/h3&gt;

&lt;p&gt;Naturally, while Apidog already matches rules to generate Mock data based on field names, some fields may not generate data that meets actual needs due to unclear name semantics. Here, Apidog's flexibility becomes crucial. It integrates the Faker.js library, allowing users to directly use its syntax and rules to customize data.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fk83y1k02z9fo7g333ae7.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fk83y1k02z9fo7g333ae7.png" alt="Built-in Faker.js Rules" width="800" height="521"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Here's how you can do it:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Select rules directly from the dropdown&lt;/strong&gt; : Apidog provides a rich set of pre-set rules in the Mock column's dropdown, enabling easy selection of the most suitable option.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Use the input box for fuzzy rule searches&lt;/strong&gt; : If you're certain about the required data type, directly input the keyword in the Mock box. Apidog will instantaneously display all related Mock rules, helping you quickly find the needed option.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;For example, if I need to return a user's full name, I enter "name" in the Mock field to see all Mock rules related to "name," where I can effortlessly select the "fullName" option. I appreciate this dynamic interaction, as Apidog successfully marries powerful Mock capabilities with a simple and intuitive user experience, making the API process both efficient and enjoyable.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fpdhblayucevkw0lqanb3.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fpdhblayucevkw0lqanb3.png" alt="Select rules directly from the dropdown" width="800" height="521"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Advanced Settings for Mock Rules
&lt;/h3&gt;

&lt;p&gt;For more advanced settings of field attributes, click the "Advanced Settings" button next to the data type. In the popup window, you can set more detailed properties like maximum and minimum values, enumerations, and more.&lt;/p&gt;

&lt;p&gt;For instance, if the "status" field currently returns an irrelevant string, but I need it to return one of "available," "sold," or "pending," there’s no need to manually write rules. Just use Apidog's aesthetically pleasing visual interface to efficiently complete the task:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Open the "Advanced Settings" for the "status" field.&lt;/li&gt;
&lt;li&gt;Toggle on the "Enumeration" button.&lt;/li&gt;
&lt;li&gt;Input the three state values.&lt;/li&gt;
&lt;li&gt;Save the settings.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;After this, rerunning the endpoint will show the "status" field returning a "sold" value from these pre-set states.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkc7lyiskjitjb15zdqzw.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkc7lyiskjitjb15zdqzw.png" alt="Advanced Settings for Mock Rules" width="800" height="456"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;For developers who prefer coding directly, Apidog also offers options to write rules directly in the JSON schema, allowing precise definition of Mock data generation rules according to personal preferences or project-specific needs.&lt;/p&gt;

&lt;h3&gt;
  
  
  Custom Mock Rules
&lt;/h3&gt;

&lt;p&gt;Beyond the rich built-in rules, Apidog also allows users to create custom rules to meet specific business needs. In the "Mock Settings," the "Smart Mock Matching Rules" module enables these custom operations.&lt;/p&gt;

&lt;p&gt;Let's take a pet store customer ID as an example:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Rule requirement&lt;/strong&gt; : ID should start with "PM" followed by a random 12-digit number.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Rule type&lt;/strong&gt; : Select "String" type.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Matching Rule&lt;/strong&gt; : Set to "id" (so all fields named id will use this rule).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Mock Rule&lt;/strong&gt; :&lt;/li&gt;
&lt;/ul&gt;

&lt;ol&gt;
&lt;li&gt;Double-click the edit box to display the Dynamic Value popup.&lt;/li&gt;
&lt;li&gt;In "String," choose "numeric."&lt;/li&gt;
&lt;li&gt;Click "length" and set it to 12.&lt;/li&gt;
&lt;li&gt;Click Insert to ensure the generated syntax is added to the edit box.&lt;/li&gt;
&lt;li&gt;Add "PM" before this syntax.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The final rule will be: &lt;code&gt;PM&lt;/code&gt;+&lt;code&gt;{{$string.numeric(length=12)}}&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;After saving, when we initiate a request containing the id field, Apidog automatically generates an ID conforming to the defined format, such as "PM077870170662."&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fcgkmbh6n2b1lfdgllbom.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fcgkmbh6n2b1lfdgllbom.png" alt="Custom Mock Rules" width="800" height="500"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Now you'll see the endpoint returns data closely resembling real-world scenarios.&lt;/p&gt;

&lt;h3&gt;
  
  
  Extracting Assertions from Response
&lt;/h3&gt;

&lt;p&gt;While discussing this, I must mention how Apidog's product team genuinely focuses on user experience. Not only do they listen to user feedback, but they also swiftly incorporate it into practical functionalities.&lt;/p&gt;

&lt;p&gt;When hovering my mouse over the id value returned after setting up custom Mock rules, two icons appear on the right: "Assertion" and "Extract Variable." I previously provided feedback about the repetitive task of manually writing JSONPath expressions each time I set assertions. To my delight, the latest version of Apidog introduced a feature to directly set assertions from the response, directly addressing my prior concern and easing the assertion setup process. They even considered the case of extracting variables directly from the response.&lt;/p&gt;

&lt;p&gt;As a developer using API testing tools, I genuinely appreciate Apidog’s team for these meticulous improvements. Though seemingly minor, such enhancements can significantly elevate efficiency and experience in daily work. This is precisely why Apidog stands out among numerous API development tools, making it one of my top choices.&lt;/p&gt;

&lt;h3&gt;
  
  
  Apidog's Exclusive Feature "Dynamic Value"
&lt;/h3&gt;

&lt;p&gt;In our earlier discussion on custom Mock rules, we briefly encountered the "Data Generator" feature of Apidog's "Dynamic Value." The "Data Generator" offers a vast and detailed classification of common data types, including:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Date/Time&lt;/strong&gt; : Advanced time control supporting various date and time formats, including time offsets and timezone handling for complex time operations.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Utility Functions&lt;/strong&gt; : A variety of processing functions like regex, increments, enumerations, and more for data generation.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Airlines&lt;/strong&gt; : Data for generating airline names and codes.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Animals&lt;/strong&gt; : Mock data for animal names and breeds.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Business&lt;/strong&gt; : Business-related data such as product categories, materials, prices, etc.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Companies&lt;/strong&gt; : Data related to company names and slogans.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Databases&lt;/strong&gt; : Data generation for database table names, field names, etc.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Finance&lt;/strong&gt; : Generating financial-related data like credit card numbers, amounts, etc.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Git&lt;/strong&gt; : Git-related data, including branch names and commit messages.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Music&lt;/strong&gt; : Music-related data such as song names and artist names.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Science&lt;/strong&gt; : Science-related data like chemical elements, unit symbols, etc.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;System&lt;/strong&gt; : Generation of system-related information like file paths and filenames.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Vehicles&lt;/strong&gt; : Data generation for vehicle brands, manufacturers, etc.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The timestamp feature is what I use the most, as it allows easy configuration for date offsets, formats, and timezones, catering to various complex time scenarios.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fohvzh984mzsn4gcyb4ad.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fohvzh984mzsn4gcyb4ad.png" alt="Dynamic Value of The timestamp" width="800" height="521"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Mocking data is just one aspect of Dynamic Value's capabilities; it can also read variables, including global and environment variables, allowing for the direct use of data results from preceding steps during automated testing, which is truly convenient.&lt;/p&gt;

&lt;h2&gt;
  
  
  Advanced Configuration: Customizing Mock Expectations
&lt;/h2&gt;

&lt;p&gt;Despite intelligent Mocking satisfying most daily simulation needs, certain scenarios demand more precise and specific response control. This is where Apidog's "Mock Expectations" feature comes into play, allowing specific data returns based on different request parameters.&lt;/p&gt;

&lt;p&gt;For instance, I need to return different data based on varying tags in the Query parameter:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;When Query parameter tags = 1, return a JSON object containing details of available pets.&lt;/li&gt;
&lt;li&gt;When Query parameter tags = 2, return a JSON object with sold pet information.&lt;/li&gt;
&lt;li&gt;When Query parameter tags = 4, return a JSON object containing error messages.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This feature allows precise control over different response types and status codes for each scenario, almost simulating a complete backend server!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fdx2ljx7qu742ihfrfnp6.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fdx2ljx7qu742ihfrfnp6.png" alt="Customizing Mock Expectations" width="800" height="521"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Expert-level  Configuration: Custom Mock Scripts
&lt;/h2&gt;

&lt;p&gt;For those with more complex scenario needs, Apidog also provides custom script functionalities.&lt;/p&gt;

&lt;p&gt;However, for me, intelligent Mocking and Mock Expectations cover most scenarios I encounter in daily work. Hence, I rarely use it. If you're interested in custom scripts, I highly recommend checking out Apidog's official help documentation, where you'll find detailed script syntax introductions and many ready-made script examples to help you get started quickly and explore more advanced Mock techniques. I hope you'll find them helpful.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9gn663odnlzibcfic1ca.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9gn663odnlzibcfic1ca.png" alt="Custom Mock Scripts" width="800" height="521"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Apidog's Diverse Mock Server Options
&lt;/h2&gt;

&lt;p&gt;Understanding the diverse needs of different teams and projects, Apidog offers three distinct types of Mock Servers. Each type has its unique advantages, catering to various use cases. Let’s delve into each option:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Local Mock&lt;/strong&gt; : Runs on the user's own computer without requiring internet connectivity. Each team member can independently maintain their Mock data. However, it becomes unavailable when the computer is off.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Cloud Mock&lt;/strong&gt; : Hosted by Apidog's cloud service, providing a fixed access address that other team members can use to access the Cloud Mock Server. It suits collaborative scenarios within a team.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Self-Hosted Mock&lt;/strong&gt; : Ideal for scenarios needing Mock services within an intranet or proprietary network, where requests are sent to the Runner's server and returned with Mock results. It suits teams with high data security requirements.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Whether you're an independent developer, a small start-up, or a large enterprise, Apidog offers the most suitable Mock solutions for you.&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;Apidog’s comprehensive Mock functionality suite is the most complete and user-friendly API Mock tool I've encountered, easily meeting both simple and complex needs. Not only does it enhance my work efficiency, but it also makes API development and testing more flexible and engaging. Plus, Apidog's product team is user-centric, focusing not just on feature completeness but also on usability and efficiency. Their continued improvements and rapid iterations are hallmarks of excellent products.&lt;/p&gt;

&lt;p&gt;Apidog offers far more than just outstanding Mock functionality; as an integrated API development platform, it covers the entire API development lifecycle. If you haven't tried it yet, I strongly encourage you to explore &lt;a href="http://www.apidog.com/?utm_source=dev_to&amp;amp;utm_medium=mubarak&amp;amp;utm_content=Mock" rel="noopener noreferrer"&gt;Apidog's features&lt;/a&gt; — they might completely transform your API development approach.&lt;/p&gt;

</description>
      <category>frontend</category>
      <category>tutorial</category>
      <category>webdev</category>
      <category>developer</category>
    </item>
  </channel>
</rss>
