<?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>DEV Community: Dimer </title>
    <description>The latest articles on DEV Community by Dimer  (@dimer22zhc).</description>
    <link>https://dev.to/dimer22zhc</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%2F163519%2F065c47b7-1994-4f47-b735-2ec7839d2ed3.jpg</url>
      <title>DEV Community: Dimer </title>
      <link>https://dev.to/dimer22zhc</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/dimer22zhc"/>
    <language>en</language>
    <item>
      <title>I'm LOOKING FOR A CONTRIBUTOR PLEASE</title>
      <dc:creator>Dimer </dc:creator>
      <pubDate>Mon, 18 Nov 2019 18:43:36 +0000</pubDate>
      <link>https://dev.to/dimer22zhc/i-m-looking-for-a-contributor-please-14kb</link>
      <guid>https://dev.to/dimer22zhc/i-m-looking-for-a-contributor-please-14kb</guid>
      <description>&lt;p&gt;I'm creating a slack clone with laravel  with nuxt.js a vue js server side framework &lt;br&gt;
&lt;a href="https://github.com/dimer22zhc/Slack-Clone-Nuxt-And-Laravel"&gt;https://github.com/dimer22zhc/Slack-Clone-Nuxt-And-Laravel&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s---OHVKU7_--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/lb29gk0bjwqh0g7kri0b.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s---OHVKU7_--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/lb29gk0bjwqh0g7kri0b.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--XODfxxyW--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/woykn1h0wi24bhn0kxza.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--XODfxxyW--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/woykn1h0wi24bhn0kxza.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--rL1j29bb--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/nlo0s0nknj1adrp8d9im.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--rL1j29bb--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/nlo0s0nknj1adrp8d9im.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--H4bZdhz_--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/8tzjwvsicu6wcd25hpw9.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--H4bZdhz_--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/8tzjwvsicu6wcd25hpw9.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--5euCSz0l--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/2m7ut2mdq58zokcobi1q.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--5euCSz0l--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/2m7ut2mdq58zokcobi1q.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>laravel</category>
      <category>vue</category>
      <category>collabs</category>
      <category>php</category>
    </item>
    <item>
      <title>CAN I FIND A REMOTE JOB IF I'M A JUNIOR SOFTWARE ENGINEER ?. IF YES ANY IDEA HOW?</title>
      <dc:creator>Dimer </dc:creator>
      <pubDate>Mon, 29 Jul 2019 03:09:54 +0000</pubDate>
      <link>https://dev.to/dimer22zhc/can-i-find-a-job-if-i-m-a-junior-software-engineer-2fh6</link>
      <guid>https://dev.to/dimer22zhc/can-i-find-a-job-if-i-m-a-junior-software-engineer-2fh6</guid>
      <description>

</description>
      <category>job</category>
      <category>laravel</category>
    </item>
    <item>
      <title>Intro to GraphQL (Part:1)</title>
      <dc:creator>Dimer </dc:creator>
      <pubDate>Sun, 28 Jul 2019 09:52:44 +0000</pubDate>
      <link>https://dev.to/dimer22zhc/intro-to-graphql-part-1-2g2n</link>
      <guid>https://dev.to/dimer22zhc/intro-to-graphql-part-1-2g2n</guid>
      <description>&lt;h2&gt;
  
  
  What is GraphQL?
&lt;/h2&gt;

&lt;p&gt;GraphQL is a specification for how to talk to an API. It's typically used over HTTP where the key idea is to POST a "query" to an HTTP endpoint, instead of hitting different HTTP endpoints for different resources.&lt;/p&gt;

&lt;p&gt;GraphQL is designed for developers of web/mobile apps (HTTP clients) to be able to make API calls to fetch the data they need from their backend APIs conveniently.&lt;/p&gt;

&lt;h2&gt;
  
  
  GraphQL vs REST: an example:
&lt;/h2&gt;

&lt;p&gt;&lt;em&gt;Let's say you have an API to fetch a user's profile and their address. In a typical REST scenario, this is what the request/response would look like:&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://graphql-engine-cdn.hasura.io/learn-hasura/assets/graphql-react/rest-api.png"&gt;https://graphql-engine-cdn.hasura.io/learn-hasura/assets/graphql-react/rest-api.png&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;If your API server was a GraphQL server instead, this is what your API calls would look like:&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://graphql-engine-cdn.hasura.io/learn-hasura/assets/graphql-react/graphql-api.gif"&gt;https://graphql-engine-cdn.hasura.io/learn-hasura/assets/graphql-react/graphql-api.gif&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;You can see that the response JSON is different for different "queries" sent by the client.&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Request1:         |  Response1:
query {           |  {
  user (id: 1) {  |    "user": {
    id            |       "id": 1
  }               |     }
}                 |  }
----------------------------------------
Request2:         |   Response2:
query {           |   {
  user (id: 1) {  |     "user": {
    id            |       "id": 1
    name          |       "name": "Elmo"
  }               |     }
}                 |   }
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;h2&gt;
  
  
  Thinking in GraphQL
&lt;/h2&gt;

&lt;p&gt;We're changing the way we think about API calls. Instead of making different API calls to different URLs to fetch data, we're making ad-hoc queries to a "single URL endpoint" that returns data based on the query.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Instead of 'GET'ing a resource you 'POST' a query that describes what data you want.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;You think of the data your API returns as a "graph", this allows you to make queries to fetch "related" pieces of data in a single shot. In the example above, you fetch the user and the user's address (as a nested JSON object) in the same API call, as opposed to making 2 API calls.&lt;/p&gt;

&lt;p&gt;The "query" you send as data in the POST request has a structure and a syntax. This "language" is called GraphQL.&lt;/p&gt;

&lt;p&gt;As you can see in the example above, GraphQL queries look very neat and easy to read! This is because the query is the "shape" of the final JSON data you desire. This is one of the key-reasons that makes GraphQL a joy to work with!&lt;/p&gt;

&lt;h2&gt;
  
  
  GraphQL benefits
&lt;/h2&gt;

&lt;p&gt;&lt;em&gt;&lt;strong&gt;Avoid over-fetching&lt;/strong&gt;&lt;/em&gt;: You avoid fetching more data than you need because you can specify the exact fields you need.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;&lt;strong&gt;Prevent multiple API calls&lt;/strong&gt;&lt;/em&gt;: In case you need more data, you can also avoid making multiple calls to your API. In the case above, you don't need to make 2 API calls to fetch user and address separately.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;&lt;strong&gt;Lesser communication with API developers&lt;/strong&gt;&lt;/em&gt;: Sometimes to fetch the exact data you need, especially if you need to fetch more data and want to avoid multiple API calls, you will need to ask your API developers to build a new API. With GraphQL, your work is independent of the API team! This allows you to work faster on your app.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;&lt;strong&gt;Self-documenting:&lt;/strong&gt;&lt;/em&gt; Every GraphQL API conforms to a "schema" which is the graph data model and what kinds of queries a client can make. This allows the community to build lots of cool tools to explore &amp;amp; visualise your API or create IDE plugins that autocomplete your GraphQL queries and even do "codegen". We'll understand this in more detail later!&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Here's a quick chart to show you the GraphQL analogs of typical REST-ish terms&lt;/em&gt;:&lt;/p&gt;

&lt;p&gt;**Requirement   |                    **REST|           **GraphQL|&lt;br&gt;
Fetching data objects |              GET|          query|&lt;br&gt;
Writing data    |                    POST|         mutation|&lt;br&gt;
Updating/deleting data |         PUT/PATCH/DELETE|   mutation|&lt;br&gt;
Watching/subscribing to data |       -    |             subscription|&lt;/p&gt;

</description>
      <category>graphql</category>
      <category>gql</category>
      <category>react</category>
      <category>laravel</category>
    </item>
    <item>
      <title>I need a friend  =&gt; We can work together on a project in Laravel and vue js in my GitHub repo</title>
      <dc:creator>Dimer </dc:creator>
      <pubDate>Thu, 11 Jul 2019 12:22:49 +0000</pubDate>
      <link>https://dev.to/dimer22zhc/i-want-help-in-laravel-and-vue-js-in-my-github-repo-1imi</link>
      <guid>https://dev.to/dimer22zhc/i-want-help-in-laravel-and-vue-js-in-my-github-repo-1imi</guid>
      <description>&lt;p&gt;I need a friend developer&lt;/p&gt;

</description>
      <category>laravel</category>
      <category>vue</category>
      <category>javascript</category>
      <category>es6</category>
    </item>
  </channel>
</rss>
